Changeset 64938 in webkit for trunk/JavaScriptCore/assembler
- Timestamp:
- Aug 7, 2010, 11:04:59 PM (15 years ago)
- Location:
- trunk/JavaScriptCore/assembler
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/AbstractMacroAssembler.h
r62306 r64938 522 522 } 523 523 524 static int32_t int32AtLocation(CodeLocationDataLabel32 dataLabel32) 525 { 526 return AssemblerType::int32AtLocation(dataLabel32.dataLocation()); 527 } 528 529 static void* pointerAtLocation(CodeLocationDataLabelPtr dataLabelPtr) 530 { 531 return AssemblerType::pointerAtLocation(dataLabelPtr.dataLocation()); 532 } 533 534 static void* jumpTarget(CodeLocationJump jump) 535 { 536 return AssemblerType::jumpTarget(jump.dataLocation()); 537 } 538 524 539 static void repatchInt32(CodeLocationDataLabel32 dataLabel32, int32_t value) 525 540 { -
trunk/JavaScriptCore/assembler/MacroAssembler.h
r57925 r64938 210 210 } 211 211 212 void loadPtrWithPatch(void* address, RegisterID dest) 213 { 214 load32WithPatch(address, dest); 215 } 212 216 213 217 void loadPtr(ImplicitAddress address, RegisterID dest) -
trunk/JavaScriptCore/assembler/MacroAssemblerX86.h
r58469 r64938 83 83 } 84 84 85 void load32WithPatch(void* address, RegisterID dest) 86 { 87 m_assembler.movl_mr(address, dest); 88 } 89 85 90 void load32(void* address, RegisterID dest) 86 91 { 87 m_assembler.movl_mr(address, dest); 92 if (dest == X86Registers::eax) 93 m_assembler.movl_mEAX(address); 94 else 95 m_assembler.movl_mr(address, dest); 88 96 } 89 97 … … 106 114 void store32(RegisterID src, void* address) 107 115 { 108 m_assembler.movl_rm(src, address); 116 if (src == X86Registers::eax) 117 m_assembler.movl_EAXm(address); 118 else 119 m_assembler.movl_rm(src, address); 109 120 } 110 121 -
trunk/JavaScriptCore/assembler/X86Assembler.h
r64608 r64938 1155 1155 void movl_rm(RegisterID src, void* addr) 1156 1156 { 1157 if (src == X86Registers::eax) 1158 movl_EAXm(addr); 1159 else 1160 m_formatter.oneByteOp(OP_MOV_EvGv, src, addr); 1157 m_formatter.oneByteOp(OP_MOV_EvGv, src, addr); 1161 1158 } 1162 1159 1163 1160 void movl_mr(void* addr, RegisterID dst) 1164 1161 { 1165 if (dst == X86Registers::eax) 1166 movl_mEAX(addr); 1167 else 1168 m_formatter.oneByteOp(OP_MOV_GvEv, dst, addr); 1162 m_formatter.oneByteOp(OP_MOV_GvEv, dst, addr); 1169 1163 } 1170 1164 … … 1558 1552 1559 1553 setPointer(reinterpret_cast<char*>(code) + where.m_offset, value); 1554 } 1555 1556 static int32_t int32AtLocation(void* where) 1557 { 1558 return static_cast<int32_t*>(where)[-1]; 1559 } 1560 1561 static void* pointerAtLocation(void* where) 1562 { 1563 return static_cast<void**>(where)[-1]; 1564 } 1565 1566 static void* jumpTarget(void* jump) 1567 { 1568 intptr_t src = reinterpret_cast<intptr_t>(jump); 1569 int32_t offset = static_cast<int32_t*>(jump)[-1]; 1570 return reinterpret_cast<void*>(src + offset); 1560 1571 } 1561 1572
Note:
See TracChangeset
for help on using the changeset viewer.