Ignore:
Timestamp:
Dec 13, 2008, 11:19:40 PM (16 years ago)
Author:
[email protected]
Message:

2008-12-13 Gavin Barraclough <[email protected]>

Reviewed by Cameron Zwarich.

Re-enable WREC on 64-bit.
Implements one of the MacroAssembler::jnzPtr methods, previously only implemented for 32-bit x86.

https://bugs.webkit.org/show_bug.cgi?id=22849

  • assembler/MacroAssembler.h: (JSC::MacroAssembler::testImm64): (JSC::MacroAssembler::jnzPtr):
  • assembler/X86Assembler.h: (JSC::X86Assembler::testq_i32r): (JSC::X86Assembler::testq_rr):
  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/assembler/MacroAssembler.h

    r39286 r39287  
    849849    }
    850850
     851#if PLATFORM(X86_64)
     852    void testImm64(RegisterID reg, Imm32 mask)
     853    {
     854        // if we are only interested in the low seven bits, this can be tested with a testb
     855        if (mask.m_value == -1)
     856            m_assembler.testq_rr(reg, reg);
     857        else if ((mask.m_value & ~0x7f) == 0)
     858            m_assembler.testb_i8r(mask.m_value, reg);
     859        else
     860            m_assembler.testq_i32r(mask.m_value, reg);
     861    }
     862#endif
     863
    851864public:
    852865    Jump jae32(RegisterID left, Imm32 right)
     
    10181031    }
    10191032   
     1033    Jump jnzPtr(RegisterID reg, Imm32 mask = Imm32(-1))
     1034    {
     1035#if PLATFORM(X86_64)
     1036        testImm64(reg, mask);
     1037        return Jump(m_assembler.jne());
     1038#else
     1039        return jnz32(reg, mask);
     1040#endif
     1041    }
     1042
    10201043#if !PLATFORM(X86_64)
    1021     Jump jnzPtr(RegisterID reg, Imm32 mask = Imm32(-1))
    1022     {
    1023         return jnz32(reg, mask);
    1024     }
    1025 
    10261044    Jump jnzPtr(Address address, Imm32 mask = Imm32(-1))
    10271045    {
Note: See TracChangeset for help on using the changeset viewer.