Ignore:
Timestamp:
Jun 30, 2011, 2:30:57 PM (14 years ago)
Author:
[email protected]
Message:

2011-06-30 Filip Pizlo <[email protected]>

Reviewed by Gavin Barraclough.

X86Assembler does not encode byte registers in 64-bit mode correctly.
https://bugs.webkit.org/show_bug.cgi?id=63665

  • assembler/X86Assembler.h: (JSC::X86Assembler::testb_rr): (JSC::X86Assembler::X86InstructionFormatter::oneByteOp8):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/X86Assembler.h

    r89630 r90157  
    880880    void testb_rr(RegisterID src, RegisterID dst)
    881881    {
    882         m_formatter.oneByteOp(OP_TEST_EbGb, src, dst);
     882        m_formatter.oneByteOp8(OP_TEST_EbGb, src, dst);
    883883    }
    884884
     
    18691869        }
    18701870
     1871        void oneByteOp8(OneByteOpcodeID opcode, int reg, RegisterID rm)
     1872        {
     1873            m_buffer.ensureSpace(maxInstructionSize);
     1874            emitRexIf(byteRegRequiresRex(reg) || byteRegRequiresRex(rm), reg, 0, rm);
     1875            m_buffer.putByteUnchecked(opcode);
     1876            registerModRM(reg, rm);
     1877        }
     1878
    18711879        void twoByteOp8(TwoByteOpcodeID opcode, RegisterID reg, RegisterID rm)
    18721880        {
Note: See TracChangeset for help on using the changeset viewer.