mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-16 20:17:05 +03:00
Fixed signatures of recently added ud0 and ud1 instructions, added two-operand NOP (fixes #217)
This commit is contained in:
@@ -846,18 +846,32 @@ CaseX86M_GPB_MulDiv:
|
||||
if (isign3 == ENC_OPS1(None))
|
||||
goto EmitX86Op;
|
||||
|
||||
// Multi-byte NOP instruction "0F 1F /0".
|
||||
// Single operand NOP instruction "0F 1F /0".
|
||||
opcode = Opcode::k000F00 | 0x1F;
|
||||
opReg = 0;
|
||||
|
||||
if (isign3 == ENC_OPS1(Reg)) {
|
||||
opcode.add66hBySize(o0.size());
|
||||
opcode.addPrefixBySize(o0.size());
|
||||
rbReg = o0.id();
|
||||
goto EmitX86R;
|
||||
}
|
||||
|
||||
if (isign3 == ENC_OPS1(Mem)) {
|
||||
opcode.add66hBySize(o0.size());
|
||||
opcode.addPrefixBySize(o0.size());
|
||||
rmRel = &o0;
|
||||
goto EmitX86M;
|
||||
}
|
||||
|
||||
// Two operand NOP instruction "0F 1F /r".
|
||||
opReg = o1.id();
|
||||
opcode.addPrefixBySize(o1.size());
|
||||
|
||||
if (isign3 == ENC_OPS2(Reg, Reg)) {
|
||||
rbReg = o0.id();
|
||||
goto EmitX86R;
|
||||
}
|
||||
|
||||
if (isign3 == ENC_OPS2(Mem, Reg)) {
|
||||
rmRel = &o0;
|
||||
goto EmitX86M;
|
||||
}
|
||||
|
||||
@@ -641,6 +641,8 @@ public:
|
||||
ASMJIT_INST_0x(nop, Nop) // ANY
|
||||
ASMJIT_INST_1x(nop, Nop, Gp) // ANY
|
||||
ASMJIT_INST_1x(nop, Nop, Mem) // ANY
|
||||
ASMJIT_INST_2x(nop, Nop, Gp, Gp) // ANY
|
||||
ASMJIT_INST_2x(nop, Nop, Mem, Gp) // ANY
|
||||
ASMJIT_INST_1x(not_, Not, Gp) // ANY
|
||||
ASMJIT_INST_1x(not_, Not, Mem) // ANY
|
||||
ASMJIT_INST_2x(or_, Or, Gp, Gp) // ANY
|
||||
@@ -723,10 +725,10 @@ public:
|
||||
ASMJIT_INST_2i(test, Test, Gp, Imm) // ANY
|
||||
ASMJIT_INST_2x(test, Test, Mem, Gp) // ANY
|
||||
ASMJIT_INST_2i(test, Test, Mem, Imm) // ANY
|
||||
ASMJIT_INST_2x(ud0, Ud0, Reg, Reg) // ANY
|
||||
ASMJIT_INST_2x(ud0, Ud0, Reg, Mem) // ANY
|
||||
ASMJIT_INST_2x(ud1, Ud1, Reg, Reg) // ANY
|
||||
ASMJIT_INST_2x(ud1, Ud1, Reg, Mem) // ANY
|
||||
ASMJIT_INST_1x(ud0, Ud0, Reg) // ANY
|
||||
ASMJIT_INST_1x(ud0, Ud0, Mem) // ANY
|
||||
ASMJIT_INST_1x(ud1, Ud1, Reg) // ANY
|
||||
ASMJIT_INST_1x(ud1, Ud1, Mem) // ANY
|
||||
ASMJIT_INST_0x(ud2, Ud2) // ANY
|
||||
ASMJIT_INST_2x(xadd, Xadd, Gp, Gp) // ANY
|
||||
ASMJIT_INST_2x(xadd, Xadd, Mem, Gp) // ANY
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user