decoder.isa (3982:c3517459caed) decoder.isa (3992:d08b4ae09876)
1// Copyright (c) 2006-2007 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

--- 720 unchanged lines hidden (view full) ---

729 }});
730 0xD2: fdtoi({{
731 Frds.sf = (float)static_cast<int32_t>(Frs2.df);
732 }});
733 0xD3: Trap::fqtoi({{fault = new FpExceptionOther;}}); // unimp fpop
734 default: FailUnimpl::fpop1();
735 }
736 }
1// Copyright (c) 2006-2007 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

--- 720 unchanged lines hidden (view full) ---

729 }});
730 0xD2: fdtoi({{
731 Frds.sf = (float)static_cast<int32_t>(Frs2.df);
732 }});
733 0xD3: Trap::fqtoi({{fault = new FpExceptionOther;}}); // unimp fpop
734 default: FailUnimpl::fpop1();
735 }
736 }
737 0x35: Trap::fpop2({{fault = new FpDisabled;}});
737 0x35: decode OPF{
738 format BasicOperate{
739 0x51: fcmps({{
740 uint8_t fcc;
741 if(isnan(Frs1s) || isnan(Frs2s))
742 fcc = 3;
743 else if(Frs1s < Frs2s)
744 fcc = 1;
745 else if(Frs1s > Frs2s)
746 fcc = 2;
747 else
748 fcc = 0;
749 uint8_t firstbit = 10;
750 if(FCMPCC)
751 firstbit = FCMPCC * 2 + 30;
752 Fsr = insertBits(Fsr, firstbit +1, firstbit, fcc);
753 }});
754 0x52: fcmpd({{
755 uint8_t fcc;
756 if(isnan(Frs1s) || isnan(Frs2s))
757 fcc = 3;
758 else if(Frs1s < Frs2s)
759 fcc = 1;
760 else if(Frs1s > Frs2s)
761 fcc = 2;
762 else
763 fcc = 0;
764 uint8_t firstbit = 10;
765 if(FCMPCC)
766 firstbit = FCMPCC * 2 + 30;
767 Fsr = insertBits(Fsr, firstbit +1, firstbit, fcc);
768 }});
769 0x53: Trap::fcmpq({{fault = new FpExceptionOther;}});
770 0x54: fcmpes({{
771 uint8_t fcc = 0;
772 if(isnan(Frs1s) || isnan(Frs2s))
773 fault = new FpExceptionIEEE754;
774 if(Frs1s < Frs2s)
775 fcc = 1;
776 else if(Frs1s > Frs2s)
777 fcc = 2;
778 uint8_t firstbit = 10;
779 if(FCMPCC)
780 firstbit = FCMPCC * 2 + 30;
781 Fsr = insertBits(Fsr, firstbit +1, firstbit, fcc);
782 }});
783 0x55: fcmped({{
784 uint8_t fcc = 0;
785 if(isnan(Frs1s) || isnan(Frs2s))
786 fault = new FpExceptionIEEE754;
787 if(Frs1s < Frs2s)
788 fcc = 1;
789 else if(Frs1s > Frs2s)
790 fcc = 2;
791 uint8_t firstbit = 10;
792 if(FCMPCC)
793 firstbit = FCMPCC * 2 + 30;
794 Fsr = insertBits(Fsr, firstbit +1, firstbit, fcc);
795 }});
796 0x56: Trap::fcmpeq({{fault = new FpExceptionOther;}});
797 default: FailUnimpl::fpop2();
798 }
799 }
738 //This used to be just impdep1, but now it's a whole bunch
739 //of instructions
740 0x36: decode OPF{
741 0x00: FailUnimpl::edge8();
742 0x01: FailUnimpl::edge8n();
743 0x02: FailUnimpl::edge8l();
744 0x03: FailUnimpl::edge8ln();
745 0x04: FailUnimpl::edge16();

--- 551 unchanged lines hidden ---
800 //This used to be just impdep1, but now it's a whole bunch
801 //of instructions
802 0x36: decode OPF{
803 0x00: FailUnimpl::edge8();
804 0x01: FailUnimpl::edge8n();
805 0x02: FailUnimpl::edge8l();
806 0x03: FailUnimpl::edge8ln();
807 0x04: FailUnimpl::edge16();

--- 551 unchanged lines hidden ---