Changeset 38971 in webkit for trunk/JavaScriptCore
- Timestamp:
- Dec 3, 2008, 2:54:36 PM (16 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r38959 r38971 1 2008-12-03 Geoffrey Garen <[email protected]> 2 3 Reviewed by Oliver Hunt, with help from Gavin Barraclough. 4 5 orl_i32r was actually coded as an 8bit OR. So, I renamed orl_i32r to 6 orl_i8r, changed all orl_i32r clients to use orl_i8r, and then added 7 a new orl_i32r that actually does a 32bit OR. 8 9 (32bit OR is currently unused, but a patch I'm working on uses it.) 10 11 * assembler/MacroAssembler.h: 12 (JSC::MacroAssembler::or32): Updated to choose between 8bit and 32bit OR. 13 14 * assembler/X86Assembler.h: 15 (JSC::X86Assembler::orl_i8r): The old orl_i32r. 16 (JSC::X86Assembler::orl_i32r): The new orl_i32r. 17 18 * jit/JIT.cpp: 19 (JSC::JIT::emitFastArithPotentiallyReTagImmediate): 20 (JSC::JIT::emitTagAsBoolImmediate): Use orl_i8r, since we're ORing 8bit 21 values. 22 1 23 2008-12-03 Dean Jackson <[email protected]> 2 24 -
trunk/JavaScriptCore/assembler/MacroAssembler.h
r38857 r38971 285 285 void or32(Imm32 imm, RegisterID dest) 286 286 { 287 m_assembler.orl_i32r(imm.m_value, dest); 287 if (CAN_SIGN_EXTEND_8_32(imm.m_value)) 288 m_assembler.orl_i8r(imm.m_value, dest); 289 else 290 m_assembler.orl_i32r(imm.m_value, dest); 288 291 } 289 292 -
trunk/JavaScriptCore/assembler/X86Assembler.h
r38917 r38971 450 450 } 451 451 452 void orl_i 32r(int imm, RegisterID dst)452 void orl_i8r(int imm, RegisterID dst) 453 453 { 454 454 m_buffer->putByte(OP_GROUP1_EvIb); 455 455 modRm_opr(GROUP1_OP_OR, dst); 456 456 m_buffer->putByte(imm); 457 } 458 459 void orl_i32r(int imm, RegisterID dst) 460 { 461 m_buffer->putByte(OP_GROUP1_EvIz); 462 modRm_opr(GROUP1_OP_OR, dst); 463 m_buffer->putInt(imm); 457 464 } 458 465 -
trunk/JavaScriptCore/jit/JIT.cpp
r38928 r38971 562 562 ALWAYS_INLINE void JIT::emitFastArithPotentiallyReTagImmediate(RegisterID reg) 563 563 { 564 __ orl_i 32r(JSImmediate::TagBitTypeInteger, reg);564 __ orl_i8r(JSImmediate::TagBitTypeInteger, reg); 565 565 } 566 566 … … 586 586 { 587 587 __ shl_i8r(JSImmediate::ExtendedPayloadShift, reg); 588 __ orl_i 32r(JSImmediate::FullTagTypeBool, reg);588 __ orl_i8r(JSImmediate::FullTagTypeBool, reg); 589 589 } 590 590
Note:
See TracChangeset
for help on using the changeset viewer.