opcode=[0x6A],
operands=[Operand(type="Imm", size=8, relaxed=True, dest="SImm")])
add_group("push",
- suffix="w",
- cpu=["186"],
- parsers=["gas"],
- opersize=16,
+ suffix="q",
+ only64=True,
+ opersize=64,
def_opersize_64=64,
opcode1=[0x6A],
opcode2=[0x68],
- operands=[Operand(type="Imm", size=16, relaxed=True, dest="Imm",
+ operands=[Operand(type="Imm", size=32, relaxed=True, dest="SImm",
opt="SImm8")])
add_group("push",
- suffix="l",
not64=True,
- parsers=["gas"],
- opersize=32,
+ cpu=["186"],
+ parsers=["nasm"],
opcode1=[0x6A],
opcode2=[0x68],
- operands=[Operand(type="Imm", size=32, relaxed=True, dest="Imm",
+ operands=[Operand(type="Imm", size="BITS", relaxed=True, dest="Imm",
opt="SImm8")])
add_group("push",
- suffix="q",
- only64=True,
- opersize=64,
+ suffix="w",
+ cpu=["186"],
+ opersize=16,
def_opersize_64=64,
opcode1=[0x6A],
opcode2=[0x68],
- operands=[Operand(type="Imm", size=32, relaxed=True, dest="SImm",
+ operands=[Operand(type="Imm", size=16, relaxed=True, dest="Imm",
opt="SImm8")])
add_group("push",
+ suffix="l",
not64=True,
- cpu=["186"],
- parsers=["nasm"],
+ opersize=32,
opcode1=[0x6A],
opcode2=[0x68],
- operands=[Operand(type="Imm", size="BITS", relaxed=True, dest="Imm",
+ operands=[Operand(type="Imm", size=32, relaxed=True, dest="Imm",
opt="SImm8")])
# Need these when we don't match the BITS size, but they need to be
# below the above line so the optimizer can kick in by default.
push 0 ; 6A 00 - equivalent to push byte 0
push byte 0 ; 6A 00
push word 0 ; 6A 00 - optimized
-push dword 0 ; 66 68 00000000
+push dword 0 ; 66 6A 00 - optimized
push strict byte 0 ; 6A 00
push strict word 0 ; 68 0000
push strict dword 0 ; 66 68 00000000
[bits 32]
push 0 ; 6A 00 - equivalent to push byte 0
push byte 0 ; 6A 00
-push word 0 ; 66 68 0000
+push word 0 ; 66 6A 00 - optimized
push dword 0 ; 6A 00 - optimized
push strict byte 0 ; 6A 00
push strict word 0 ; 66 68 0000
[bits 64]
push 0 ; same as bits 32 output
-push byte 0
-push word 0
-push dword 0 ; optimized to byte
-push strict byte 0
-push strict word 0
-push strict dword 0
+push byte 0 ; 6A 00; 64 bits pushed onto stack
+push word 0 ; 66 6A 00 - 66h prefix, optimized to byte
+push dword 0 ; 6A 00 - optimized to byte; note 64 bits pushed onto stack
+push strict byte 0 ; 6A 00; 64 bits pushed onto stack
+push strict word 0 ; 66 68 0000
+push strict dword 0 ; 68 00000000; note 64 bits pushed onto stack
push 128
push byte 128 ; warning
push word 128