diff options
author | Jin Kyu Song <jin.kyu.song@intel.com> | 2013-11-08 13:31:58 -0800 |
---|---|---|
committer | Jin Kyu Song <jin.kyu.song@intel.com> | 2013-11-20 11:29:42 -0800 |
commit | b4e1ae18e2b1cf136b345f85535ddeffb9f52869 (patch) | |
tree | 1537a58b1fe05e3431e99a951a42185571b2fe4b /insns.dat | |
parent | 3b65323d800a04570e4364f9419d518a16bb9512 (diff) | |
download | nasm-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.dat | 91 |
1 files changed, 45 insertions, 46 deletions
@@ -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 |