Changeset 224623 in webkit for trunk/Source/JavaScriptCore/assembler/MIPSAssembler.h
- Timestamp:
- Nov 9, 2017, 1:02:10 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/MIPSAssembler.h
r224258 r224623 109 109 } RegisterID; 110 110 111 // Currently, we don't have support for any special purpose registers.112 111 typedef enum { 113 firstInvalidSPR, 114 lastInvalidSPR = -1, 112 fir = 0, 113 fccr = 25, 114 fexr = 26, 115 fenr = 28, 116 fcsr = 31 115 117 } SPRegisterID; 116 118 … … 163 165 static constexpr unsigned numberOfRegisters() { return lastRegister() - firstRegister() + 1; } 164 166 165 static constexpr SPRegisterID firstSPRegister() { return MIPSRegisters::fir stInvalidSPR; }166 static constexpr SPRegisterID lastSPRegister() { return MIPSRegisters:: lastInvalidSPR; }167 static constexpr unsigned numberOfSPRegisters() { return 0; }167 static constexpr SPRegisterID firstSPRegister() { return MIPSRegisters::fir; } 168 static constexpr SPRegisterID lastSPRegister() { return MIPSRegisters::fcsr; } 169 static constexpr unsigned numberOfSPRegisters() { return 5; } 168 170 169 171 static constexpr FPRegisterID firstFPRegister() { return MIPSRegisters::f0; } … … 185 187 static const char* sprName(SPRegisterID id) 186 188 { 187 // Currently, we don't have support for any special purpose registers. 188 RELEASE_ASSERT_NOT_REACHED(); 189 switch (id) { 190 case MIPSRegisters::fir: 191 return "fir"; 192 case MIPSRegisters::fccr: 193 return "fccr"; 194 case MIPSRegisters::fexr: 195 return "fexr"; 196 case MIPSRegisters::fenr: 197 return "fenr"; 198 case MIPSRegisters::fcsr: 199 return "fcsr"; 200 default: 201 RELEASE_ASSERT_NOT_REACHED(); 202 } 189 203 } 190 204 … … 225 239 }; 226 240 241 // FCSR Bits 242 enum { 243 FP_CAUSE_INVALID_OPERATION = 1 << 16 244 }; 245 227 246 void emitInst(MIPSWord op) 228 247 { … … 715 734 { 716 735 emitInst(0x46200035 | (fs << OP_SH_FS) | (ft << OP_SH_FT)); 736 copDelayNop(); 737 } 738 739 void cfc1(RegisterID rt, SPRegisterID fs) 740 { 741 emitInst(0x44400000 | (rt << OP_SH_RT) | (fs << OP_SH_FS)); 717 742 copDelayNop(); 718 743 }
Note:
See TracChangeset
for help on using the changeset viewer.