Lines Matching refs:opcode
18 unsigned int PerformFLT(const unsigned int opcode);
19 unsigned int PerformFIX(const unsigned int opcode);
21 static unsigned int PerformComparison(const unsigned int opcode);
23 unsigned int EmulateCPRT(const unsigned int opcode) in EmulateCPRT() argument
26 if (opcode & 0x800000) { in EmulateCPRT()
31 return PerformComparison(opcode); in EmulateCPRT()
35 switch ((opcode & 0x700000) >> 20) { in EmulateCPRT()
37 return PerformFLT(opcode); in EmulateCPRT()
40 return PerformFIX(opcode); in EmulateCPRT()
44 writeFPSR(readRegister(getRd(opcode))); in EmulateCPRT()
47 writeRegister(getRd(opcode), readFPSR()); in EmulateCPRT()
57 unsigned int PerformFLT(const unsigned int opcode) in PerformFLT() argument
62 roundData.mode = SetRoundingMode(opcode); in PerformFLT()
63 roundData.precision = SetRoundingPrecision(opcode); in PerformFLT()
66 switch (opcode & MASK_ROUNDING_PRECISION) { in PerformFLT()
69 fpa11->fType[getFn(opcode)] = typeSingle; in PerformFLT()
70 fpa11->fpreg[getFn(opcode)].fSingle = int32_to_float32(&roundData, readRegister(getRd(opcode))); in PerformFLT()
76 fpa11->fType[getFn(opcode)] = typeDouble; in PerformFLT()
77 fpa11->fpreg[getFn(opcode)].fDouble = int32_to_float64(readRegister(getRd(opcode))); in PerformFLT()
84 fpa11->fType[getFn(opcode)] = typeExtended; in PerformFLT()
85 fpa11->fpreg[getFn(opcode)].fExtended = int32_to_floatx80(readRegister(getRd(opcode))); in PerformFLT()
100 unsigned int PerformFIX(const unsigned int opcode) in PerformFIX() argument
103 unsigned int Fn = getFm(opcode); in PerformFIX()
106 roundData.mode = SetRoundingMode(opcode); in PerformFIX()
107 roundData.precision = SetRoundingPrecision(opcode); in PerformFIX()
113 writeRegister(getRd(opcode), float32_to_int32(&roundData, fpa11->fpreg[Fn].fSingle)); in PerformFIX()
119 writeRegister(getRd(opcode), float64_to_int32(&roundData, fpa11->fpreg[Fn].fDouble)); in PerformFIX()
126 writeRegister(getRd(opcode), floatx80_to_int32(&roundData, fpa11->fpreg[Fn].fExtended)); in PerformFIX()
142 static unsigned int PerformComparison(const unsigned int opcode) in PerformComparison() argument
145 unsigned int Fn = getFn(opcode), Fm = getFm(opcode); in PerformComparison()
146 int e_flag = opcode & 0x400000; /* 1 if CxFE */ in PerformComparison()
147 int n_flag = opcode & 0x200000; /* 1 if CNxx */ in PerformComparison()
184 if (CONSTANT_FM(opcode)) { in PerformComparison()
234 if (CONSTANT_FM(opcode)) { in PerformComparison()