BR 3020760: insns.dat -- confirm push imm32 on x86-64 explicitly
authorCyrill Gorcunov <gorcunov@gmail.com>
Fri, 25 Jun 2010 11:45:19 +0000 (15:45 +0400)
committerCyrill Gorcunov <gorcunov@gmail.com>
Fri, 25 Jun 2010 14:28:15 +0000 (18:28 +0400)
PUSH imm64 confuses ones who is trying to find this instruction in
processor programming manuals.

Actually it was introduced in a sake of "push `size' imm" consistency.
In other words -- to allow users to state "PUSH qword imm32" in 64bit code,
though on byte level (ie generated) code it still has a correct and valid
sign-extended "PUSH imm32" instruction.

To get rid of this ambiguie bite we make explicit "PUSH imm32"
being valid in 64bit code. This also makes "PUSH dword imm32"
valid in 64bit code as well.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
insns.dat

index 01c1e2c..00d0a7f 100644 (file)
--- a/insns.dat
+++ b/insns.dat
@@ -1026,6 +1026,7 @@ PUSH              imm8                            \1\x6A\274                                      186
 PUSH           imm16                           \320\144\x68\140                                186,AR0,SZ
 PUSH           imm32                           \321\154\x68\150                                386,NOLONG,AR0,SZ
 PUSH           imm32                           \321\154\x68\150                                386,NOLONG,SD
+PUSH           imm32                           \323\154\x68\250                                X64,AR0,SZ
 PUSH           imm64                           \323\154\x68\250                                X64,AR0,SZ
 PUSHA          void                            \322\1\x60                                      186,NOLONG
 PUSHAD         void                            \321\1\x60                                      386,NOLONG