summaryrefslogtreecommitdiff
path: root/insns.dat
diff options
context:
space:
mode:
authorJin Kyu Song <jin.kyu.song@intel.com>2013-11-08 13:31:58 -0800
committerJin Kyu Song <jin.kyu.song@intel.com>2013-11-20 11:29:42 -0800
commitb4e1ae18e2b1cf136b345f85535ddeffb9f52869 (patch)
tree1537a58b1fe05e3431e99a951a42185571b2fe4b /insns.dat
parent3b65323d800a04570e4364f9419d518a16bb9512 (diff)
downloadnasm-b4e1ae18e2b1cf136b345f85535ddeffb9f52869.tar.gz
nasm-b4e1ae18e2b1cf136b345f85535ddeffb9f52869.tar.bz2
nasm-b4e1ae18e2b1cf136b345f85535ddeffb9f52869.zip
MPX: Move BND prefix indication from bytecode to iflags
As BND prefix validity check conflicts with jcc8 prefix, IF_BND is added for the instruction templates which can have bnd prefix for preserving the content of bound register. Signed-off-by: Jin Kyu Song <jin.kyu.song@intel.com>
Diffstat (limited to 'insns.dat')
-rw-r--r--insns.dat91
1 files changed, 45 insertions, 46 deletions
diff --git a/insns.dat b/insns.dat
index f60ea8e..4054090 100644
--- a/insns.dat
+++ b/insns.dat
@@ -276,22 +276,22 @@ CALL rm16 [m: o16 ff /2] 8086,NOLONG
CALL rm32 [m: o32 ff /2] 386,NOLONG
CALL rm64 [m: o64nw ff /2] X64
; BND + CALL
-CALL imm [i: bnd odf e8 rel] 8086,MPX
-CALL imm|near [i: bnd odf e8 rel] 8086,ND,MPX
-CALL imm16 [i: bnd o16 e8 rel] 8086,NOLONG,MPX
-CALL imm16|near [i: bnd o16 e8 rel] 8086,ND,NOLONG,MPX
-CALL imm32 [i: bnd o32 e8 rel] 386,NOLONG,MPX
-CALL imm32|near [i: bnd o32 e8 rel] 386,ND,NOLONG,MPX
-CALL imm64 [i: bnd o64nw e8 rel] X64,MPX
-CALL imm64|near [i: bnd o64nw e8 rel] X64,ND,MPX
-CALL mem|near [m: bnd odf ff /2] 8086,ND,MPX
-CALL rm16|near [m: bnd o16 ff /2] 8086,NOLONG,ND,MPX
-CALL rm32|near [m: bnd o32 ff /2] 386,NOLONG,ND,MPX
-CALL rm64|near [m: bnd o64nw ff /2] X64,ND,MPX
-CALL mem [m: bnd odf ff /2] 8086,MPX
-CALL rm16 [m: bnd o16 ff /2] 8086,NOLONG,MPX
-CALL rm32 [m: bnd o32 ff /2] 386,NOLONG,MPX
-CALL rm64 [m: bnd o64nw ff /2] X64,MPX
+CALL imm [i: odf e8 rel] 8086,MPX,BND
+CALL imm|near [i: odf e8 rel] 8086,ND,MPX,BND
+CALL imm16 [i: o16 e8 rel] 8086,NOLONG,MPX,BND
+CALL imm16|near [i: o16 e8 rel] 8086,ND,NOLONG,MPX,BND
+CALL imm32 [i: o32 e8 rel] 386,NOLONG,MPX,BND
+CALL imm32|near [i: o32 e8 rel] 386,ND,NOLONG,MPX,BND
+CALL imm64 [i: o64nw e8 rel] X64,MPX,BND
+CALL imm64|near [i: o64nw e8 rel] X64,ND,MPX,BND
+CALL mem|near [m: odf ff /2] 8086,ND,MPX,BND
+CALL rm16|near [m: o16 ff /2] 8086,NOLONG,ND,MPX,BND
+CALL rm32|near [m: o32 ff /2] 386,NOLONG,ND,MPX,BND
+CALL rm64|near [m: o64nw ff /2] X64,ND,MPX,BND
+CALL mem [m: odf ff /2] 8086,MPX,BND
+CALL rm16 [m: o16 ff /2] 8086,NOLONG,MPX,BND
+CALL rm32 [m: o32 ff /2] 386,NOLONG,MPX,BND
+CALL rm64 [m: o64nw ff /2] X64,MPX,BND
CBW void [ o16 98] 8086
CDQ void [ o32 99] 386
@@ -727,22 +727,22 @@ JMP rm16 [m: o16 ff /4] 8086,NOLONG
JMP rm32 [m: o32 ff /4] 386,NOLONG
JMP rm64 [m: o64nw ff /4] X64
; BND + JMP
-JMP imm [i: bnd odf e9 rel] 8086,MPX
-JMP imm|near [i: bnd odf e9 rel] 8086,ND,MPX
-JMP imm16 [i: bnd o16 e9 rel] 8086,NOLONG,MPX
-JMP imm16|near [i: bnd o16 e9 rel] 8086,ND,NOLONG,MPX
-JMP imm32 [i: bnd o32 e9 rel] 386,NOLONG,MPX
-JMP imm32|near [i: bnd o32 e9 rel] 386,ND,NOLONG,MPX
-JMP imm64 [i: bnd o64nw e9 rel] X64,MPX
-JMP imm64|near [i: bnd o64nw e9 rel] X64,ND,MPX
-JMP mem|near [m: bnd odf ff /4] 8086,ND,MPX
-JMP rm16|near [m: bnd o16 ff /4] 8086,NOLONG,ND,MPX
-JMP rm32|near [m: bnd o32 ff /4] 386,NOLONG,ND,MPX
-JMP rm64|near [m: bnd o64nw ff /4] X64,ND,MPX
-JMP mem [m: bnd odf ff /4] 8086,MPX
-JMP rm16 [m: bnd o16 ff /4] 8086,NOLONG,MPX
-JMP rm32 [m: bnd o32 ff /4] 386,NOLONG,MPX
-JMP rm64 [m: bnd o64nw ff /4] X64,MPX
+JMP imm [i: odf e9 rel] 8086,MPX,BND
+JMP imm|near [i: odf e9 rel] 8086,ND,MPX,BND
+JMP imm16 [i: o16 e9 rel] 8086,NOLONG,MPX,BND
+JMP imm16|near [i: o16 e9 rel] 8086,ND,NOLONG,MPX,BND
+JMP imm32 [i: o32 e9 rel] 386,NOLONG,MPX,BND
+JMP imm32|near [i: o32 e9 rel] 386,ND,NOLONG,MPX,BND
+JMP imm64 [i: o64nw e9 rel] X64,MPX,BND
+JMP imm64|near [i: o64nw e9 rel] X64,ND,MPX,BND
+JMP mem|near [m: odf ff /4] 8086,ND,MPX,BND
+JMP rm16|near [m: o16 ff /4] 8086,NOLONG,ND,MPX,BND
+JMP rm32|near [m: o32 ff /4] 386,NOLONG,ND,MPX,BND
+JMP rm64|near [m: o64nw ff /4] X64,ND,MPX,BND
+JMP mem [m: odf ff /4] 8086,MPX,BND
+JMP rm16 [m: o16 ff /4] 8086,NOLONG,MPX,BND
+JMP rm32 [m: o32 ff /4] 386,NOLONG,MPX,BND
+JMP rm64 [m: o64nw ff /4] X64,MPX,BND
JMPE imm [i: odf 0f b8 rel] IA64
JMPE imm16 [i: o16 0f b8 rel] IA64
@@ -1156,10 +1156,10 @@ RETF imm [i: ca iw] 8086,SW
RETN void [ c3] 8086
RETN imm [i: c2 iw] 8086,SW
; BND + RET
-RET void [ bnd c3] 8086,MPX
-RET imm [i: bnd c2 iw] 8086,SW,MPX
-RETN void [ bnd c3] 8086,MPX
-RETN imm [i: bnd c2 iw] 8086,SW,MPX
+RET void [ c3] 8086,MPX,BND
+RET imm [i: c2 iw] 8086,SW,MPX,BND
+RETN void [ c3] 8086,MPX,BND
+RETN imm [i: c2 iw] 8086,SW,MPX,BND
ROL rm8,unity [m-: d0 /0] 8086
ROL rm8,reg_cl [m-: d2 /0] 8086
@@ -1528,16 +1528,15 @@ Jcc imm [i: 0f 80+c rel] 386,ND
Jcc imm [i: 71+c jlen e9 rel] 8086,ND
Jcc imm [i: 70+c rel8] 8086
; BND + Jcc
-Jcc imm|near [i: bnd odf 0f 80+c rel] 386,MPX
-Jcc imm16|near [i: bnd o16 0f 80+c rel] 386,NOLONG,MPX
-Jcc imm32|near [i: bnd o32 0f 80+c rel] 386,NOLONG,MPX
-Jcc imm64|near [i: bnd o64nw 0f 80+c rel] X64,MPX
-Jcc imm|short [i: bnd 70+c rel8] 8086,ND,MPX
-; TODO: check if bnd and jcc8 can be used together
-;Jcc imm [i: bnd jcc8 70+c rel8] 8086,ND,MPX
-Jcc imm [i: bnd 0f 80+c rel] 386,ND,MPX
-Jcc imm [i: bnd 71+c jlen e9 rel] 8086,ND,MPX
-Jcc imm [i: bnd 70+c rel8] 8086,MPX
+Jcc imm|near [i: odf 0f 80+c rel] 386,MPX,BND
+Jcc imm16|near [i: o16 0f 80+c rel] 386,NOLONG,MPX,BND
+Jcc imm32|near [i: o32 0f 80+c rel] 386,NOLONG,MPX,BND
+Jcc imm64|near [i: o64nw 0f 80+c rel] X64,MPX,BND
+Jcc imm|short [i: 70+c rel8] 8086,ND,MPX,BND
+Jcc imm [i: jcc8 70+c rel8] 8086,ND,MPX,BND
+Jcc imm [i: 0f 80+c rel] 386,ND,MPX,BND
+Jcc imm [i: 71+c jlen e9 rel] 8086,ND,MPX,BND
+Jcc imm [i: 70+c rel8] 8086,MPX,BND
SETcc mem [m: 0f 90+c /0] 386,SB
SETcc reg8 [m: 0f 90+c /0] 386