Changeset 149634 in webkit for trunk/Source/JavaScriptCore/assembler/SH4Assembler.h
- Timestamp:
- May 6, 2013, 1:28:31 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/SH4Assembler.h
r149403 r149634 116 116 MOVL_READ_OFFRM_OPCODE = 0x5000, 117 117 MOVW_WRITE_RN_OPCODE = 0x2001, 118 MOVW_WRITE_R0RN_OPCODE = 0x0005, 118 119 MOVW_READ_RM_OPCODE = 0x6001, 119 120 MOVW_READ_R0RM_OPCODE = 0x000d, … … 1061 1062 } 1062 1063 1064 void movwRegMemr0(RegisterID src, RegisterID dst) 1065 { 1066 uint16_t opc = getOpcodeGroup1(MOVW_WRITE_R0RN_OPCODE, dst, src); 1067 oneShortOp(opc); 1068 } 1069 1063 1070 void movlRegMem(RegisterID src, int offset, RegisterID base) 1064 1071 { … … 1124 1131 { 1125 1132 uint16_t opc = getOpcodeGroup1(MOVB_READ_RM_OPCODE, dst, src); 1133 oneShortOp(opc); 1134 } 1135 1136 void movbRegMemr0(RegisterID src, RegisterID dst) 1137 { 1138 uint16_t opc = getOpcodeGroup1(MOVB_WRITE_R0RN_OPCODE, dst, src); 1126 1139 oneShortOp(opc); 1127 1140 } … … 1381 1394 static SH4Buffer::TwoShorts placeConstantPoolBarrier(int offset) 1382 1395 { 1383 ASSERT(((offset >> 1) <= 2047) && ((offset >> 1) >= -2048));1396 ASSERT(((offset >> 1) <= 2047) && ((offset >> 1) >= -2048)); 1384 1397 1385 1398 SH4Buffer::TwoShorts m_barrier; … … 1475 1488 static ptrdiff_t maxJumpReplacementSize() 1476 1489 { 1477 return sizeof(SH4Word) * 7;1490 return sizeof(SH4Word) * 6; 1478 1491 } 1479 1492 … … 1484 1497 int nbinst = 0; 1485 1498 1486 if ((difference >= - 2048) && (difference <= 2047)) {1499 if ((difference >= -4096) && (difference <= 4094)) { 1487 1500 instruction[0] = getOpcodeGroup6(BRA_OPCODE, difference >> 1); 1488 1501 instruction[1] = NOP_OPCODE; … … 1491 1504 } 1492 1505 1493 if (reinterpret_cast<unsigned>(instruction) & 3)1494 instruction[nbinst++] = NOP_OPCODE;1495 1496 1506 instruction[nbinst++] = getOpcodeGroup3(MOVL_READ_OFFPC_OPCODE, scratchReg2, 1); 1497 1507 instruction[nbinst++] = getOpcodeGroup2(JMP_OPCODE, scratchReg2); 1498 1508 instruction[nbinst++] = NOP_OPCODE; 1499 instruction[nbinst++] = NOP_OPCODE; 1509 1510 if (!(reinterpret_cast<unsigned>(instruction) & 3)) 1511 instruction[nbinst++] = NOP_OPCODE; 1512 1500 1513 instruction[nbinst++] = reinterpret_cast<unsigned>(to) & 0xffff; 1501 1514 instruction[nbinst++] = reinterpret_cast<unsigned>(to) >> 16; … … 1949 1962 format = " MOV.W @(R0, R%d), R%d\n"; 1950 1963 break; 1964 case MOVW_WRITE_R0RN_OPCODE: 1965 format = " MOV.W R%d, @(R0, R%d)\n"; 1966 break; 1951 1967 case EXTUB_OPCODE: 1952 1968 format = " EXTU.B R%d, R%d\n";
Note:
See TracChangeset
for help on using the changeset viewer.