Commit Graph

177 Commits

Author SHA1 Message Date
Mark Charney
eb5f9f7c70 INVVPID, INVEPT: allow 16b mode decoding.
Change-Id: Ifa83e21f6fba43afe9eca693872839442e9ef960
(cherry picked from commit f28b75e5036c771148323f4f3675551f6aefcff6)
2017-07-06 14:57:04 -04:00
Mark Charney
68d7d10141 ild_codegen.py: remove bogus asserts that come up for #UD on disp/mode
* ild should not assert.

  * lengths of (unnamed) #UDs are not architectural and are subject to
    change by implementation, although they infrequently change.

  * the code was attempting to catch a case where information was
    missing (about the lengths of displacments) but if information is
    missing, the corresponding encodings are not defined.

Change-Id: Ieb30c380ae6117567fa1a72dd0adbd7f0e3b2791
(cherry picked from commit 80173f59809456b8406b573a435d1b00c56efef1)
2017-07-06 09:06:26 -04:00
Mark Charney
d6284a455c add UD0 and UD1 instructions definitions
Change-Id: I0a6405956a69e8052de57e209ba2dd013d636f7b
(cherry picked from commit 9e4a372fe6966a17a4f99861876b7520a3b55a08)
2017-07-06 09:06:26 -04:00
Mark Charney
ef83ba6cb1 improve EVEX & VEX handling of mask register specifier bits
* Outside of 64b mode, EVEX.R', EVEX.R, EVEX.X and EVEX.B are
    ignored.  (handled in ILD C code). If not set, those fields are
    zero.

  * MASK_B ignores REXB (EVEX.B and VEX.B). It is used in EVEX and VEX
    mask encodings. SDM(062) states EVEX.B is ignored but omits
    mention of VEX.B.

  * In 64b mode, VEX.vvvv[3] must be 1 for mask registers; EVEX.vvvv
    is not used for mask registers. In non-64b mode VEX.vvvv[3] is
    ignored for mask regs.

  * VEX.R must be 1 for mask registers.

Change-Id: I209a62c7e27778ca0981e342cb3143f367409abf
(cherry picked from commit c41fb5e8f6b77524b94ee2e5860dd6c91a45b628)
2017-07-06 09:06:26 -04:00
Mark Charney
8f4f45418c xbegin ignores 66. undoing recent commit
* I was given bad information. Correcting that now.

Change-Id: I6676585bd040ae6b19062fdab6942389b3d1581e
(cherry picked from commit a1d8c5563806e9d985a9990fe37ca31527a56da1)
2017-06-30 12:21:46 -04:00
Mark Charney
5fcbd0e281 int1: add rIP operand.
Change-Id: I2a7f1f584d7506a91e12bd5c5f5aedcec6585760
2017-06-29 22:18:05 -04:00
Mark Charney
9057dfef75 xed-isa: fix JO not64 to use EIP 2017-06-29 22:18:01 -04:00
Mark Charney
03a1c5f6c1 rebase tests
Change-Id: Ida6e97d3841e8f33108c56aac3921db14c97358e
2017-06-29 22:17:54 -04:00
Mark Charney
d20b4ac07e oc2-extras: rip nt is y not v
* y is 32/64 and v is 16/32/64
2017-06-29 22:17:36 -04:00
Mark Charney
f4d0c4a179 rebase tests for RIP/EIP rip-rel update in prev commit
Change-Id: I202cf31e306cbdf6508f2c5d70794c5ba4edec8b
2017-06-29 22:17:30 -04:00
Mark Charney
94339eca9d Have RIP-rel addressing work with 67 prefix
* decoder shows EIP if 67 used for rip rel in 64b mode.
    looks nicer.

  * encoder works with EIP (and emits 67) if used for encoding.

Change-Id: Ie3a63c7562c90ea8e48ac24e89d6ac5d8b20a1b8
2017-06-29 22:17:25 -04:00
Mark Charney
4f2d7653c5 rebase tests for RIP improvement in prev commit
Change-Id: I194f11c04a102fa64dc2e57382454847016477d5
(cherry picked from commit f7c52983742304f5c91c69d5bcaff1837b221534)
2017-06-29 22:17:18 -04:00
Mark Charney
dc0e662d38 cleanup of RIP handling on branches
* rIP() was effective address size (EASZ) sensitive and that was
    wrong.

  * some branch instructions have 64b mode only patterns.  They now
    use XED_REG_RIP.

  * some branch instructions have not64 mode only patterns.  They now
    use XED_REG_EIP.

  * some branch patterns use common patterns. They use rIP() but now
    rIP() is mode-only sensitive. In 64b mode, RIP gets updated.  And
    in non64 modes, EIP gets updated. When EOSZ is 16b, the full 32b
    EIP is updated, under a mask.

  * Still to do: need to rebase the existing tests and add new ones.
    More testing required.

Change-Id: Id6124cab3ec58db702c359b7621e3a17a9d39dfa
2017-06-29 22:17:12 -04:00
Mark Charney
27e3ad03f1 rtm.xed date 2017
Change-Id: I1981761e98f9b2a159250d41d95c79953ac78e91
(cherry picked from commit 3fbfb7cb64196669b72506952d8e6943ef33b701)
2017-06-29 22:17:03 -04:00
Mark Charney
9274e7a2ce add fsbase tests
Change-Id: I762336c8e8f5bea74cf368dcd7aad8046d88a5cc
(cherry picked from commit 292628d3bbef2be9e998a4bd3b8b225b954627b7)
2017-06-29 22:16:58 -04:00
Mark Charney
fe689745cb FSGSBASE: remove no-66 prefix requirement.
Change-Id: I9b7220ecce75dad4e8402a69cdf6eeefdb9afa9f
(cherry picked from commit 2d2f7c43167e53e69543e23b51e85e815e991ac0)
2017-06-29 22:16:52 -04:00
Mark Charney
e4b1b432b4 xbegin #UDs with 66
Change-Id: Ia94ced4a472c005b89cb80fd08c1a3ca44fedcfe
(cherry picked from commit 20855608232d6cf5cd2f33e0563b0545a8ba9623)
2017-06-29 22:16:45 -04:00
Mark Charney
334f4d9cc9 add KMOVQ tests
Change-Id: I1a9107a0ff8dba4c296545a199f94ecf808e312a
(cherry picked from commit 6f20f7c856ebe463514caceff971d96f1730b7c0)
2017-06-29 22:16:38 -04:00
Mark Charney
065409454f update tests for FCMOV/CMOV split from PPRO ISA SET
Change-Id: I7dc7bddceded5c6b5a97c3b72f32e8e96c3d7cea
(cherry picked from commit 9723b00d2545ea9a8c5d99d71a9a100a54edaf50)
2017-06-29 22:16:33 -04:00
Mark Charney
6a015237c2 KMOVQ aliases to KMOVD in 32b mode. VEX.W is ignored.
Change-Id: Idcec6c04a9b32ccd539866938af3b0d1cc7b0ee9
(cherry picked from commit 334f9337fe3be3fcc28fc1ead0edb158393b4247)
2017-06-29 22:16:27 -04:00
Mark Charney
b6beda320c split CMOV and FCMOV in to their own isa sets
Change-Id: I9b24e198fe0b9fe1611b7b08e87981b6842f7436
(cherry picked from commit 86238265a5bb649ef13cdc22b66458907936520c)
2017-06-29 22:16:22 -04:00
Mark Charney
09843ea903 undo 262 2017-06-24 13:44:35 -04:00
Mark Charney
ddff2c4574 undo 252 2017-06-24 13:43:44 -04:00
Mark Charney
125018043f undo 407 2017-06-24 13:42:46 -04:00
Mark Charney
128f923904 undo 408 2017-06-24 13:41:43 -04:00
Mark Charney
05370d9872 fix 408 v to y 2017-06-24 13:40:08 -04:00
Mark Charney
d44198782c fix 407 v to y 2017-06-24 13:39:13 -04:00
Mark Charney
3e23fa5ffd fix 262 v to y 2017-06-24 13:38:04 -04:00
Mark Charney
053a642321 fix 252. v to y 2017-06-24 13:36:45 -04:00
Mark Charney
20fa8d4202 fix xed_sign_extend_arbitrary_to_64(). was using 32b literal 1 value
Change-Id: I2db789b6630d67cda56f78fdc01e645a289873fe
(cherry picked from commit af736cc24f7356def619e922a510552642dbb1c8)
2017-06-20 21:05:59 -04:00
Mark Charney
034b706750 xed-buildt.txt doc: python 27 or 34 or later...
Change-Id: I2414572b27d220506d4ecd0ee5200d32db965f3b
(cherry picked from commit 7383596c14a5cd9d1cf89e2431b3f6c640e48153)
2017-06-20 21:05:59 -04:00
Mark Charney
4a58e9fd03 travis/appveyor: using pip inside ci.py to install py2/py3 mbuild
Change-Id: I057cb212dedd7d8b22866d85de8afc025383e00a
2017-06-13 14:33:22 -04:00
Mark Charney
044d57699c appveyor python27 only for now too
Change-Id: I4bf867dd366d0fcce1e7905a8de0279662429e39
2017-06-13 13:07:35 -04:00
Mark Charney
372c5e2be3 appveyor ci.py mutiple python versions
Change-Id: I4a6a71e5baa736e9cdebecb3c8d93de8f23b63bf
2017-06-13 12:58:12 -04:00
Mark Charney
ef6ea27855 travis ci.py: fix syntax error
Change-Id: Iea0cfac685e85cdb01d4d2878055d2729a741858
2017-06-13 12:45:14 -04:00
Mark Charney
9d4ac08b16 travis ci.py: disable 3.5.2 testing while I debug travis issue
Change-Id: I53f74aed7d7f75eda936bb2a3e651f40d9ae1ae0
2017-06-13 12:40:46 -04:00
Mark Charney
c0a4b51049 travis ci.py fix for linux
Change-Id: I502ffbbdf6b9d08dd64588670adf1c68587f3059
2017-06-13 12:07:13 -04:00
Mark Charney
908f1219e1 travis: split build subdirs
Change-Id: Ieef2d110c7ebab0f50363d35ecdebeae244c8384
2017-06-13 12:02:17 -04:00
Mark Charney
c5bea9dfb3 travis: trying using multiple python versions on linux
Change-Id: I11f4fca10f5c7648cc2a605ab678789bce7200c5
2017-06-13 11:57:48 -04:00
Mark Charney
bb72495f54 Merge pull request #47 from intelxed/python3
python3
2017-06-12 16:26:42 -04:00
Mark Charney
ea2ea38f3e elf_sizes: Popen() universal_newlines and exception syntax (linux)
Change-Id: I9bd658ba6c1ec82c28cd062a9118b74d2a9dd66e
(cherry picked from commit e93dabbc58bcb2c4a93c0eac34d6c5cfc9d1195a)
2017-06-12 14:41:25 -04:00
Mark Charney
f5cc39cfe1 using is_stringish().
* bytes almost never come up except reading hash signature files.

Change-Id: I04bcfe2af016e0f29fd76cafceda72f51b9abe18
(cherry picked from commit ef74f535c2f74f30ddd7a588486253bced2a3e32)
2017-06-12 14:41:25 -04:00
Mark Charney
8fd2fe0236 gitignore: __pycache__
Change-Id: I5b3b4dc7f823e6cd3464dbfdd11dd3816366f6d5
(cherry picked from commit b998a60954994ed792662979963efc2a795a6d25)
2017-06-12 14:41:25 -04:00
Mark Charney
fd9e854be6 convert scripts dir to python2or3
Change-Id: I6188243b812050a763efed257797f9c3758706a2
(cherry picked from commit e82817687db19d4dccb10e12f95072e87d3d70e8)
2017-06-12 14:41:25 -04:00
Mark Charney
e7d734962c update legal header & date for py3 ported files
Change-Id: I166833daaa56c33eca01bdf7b9aa6e74a490ba9a
(cherry picked from commit 1212ba962dff6dfbfa0bd2469327ff447ce59058)
2017-06-12 14:41:24 -04:00
Mark Charney
9983af67b9 ctables: string/bytes confusion. genutil:funcs for idioms I keep replacing
Change-Id: Ic1bce8efd82be80b9911b62d0b932eba0a08ed08
(cherry picked from commit adb6a4f9032feef846f6e81660424963c18cf7da)
2017-06-12 14:41:24 -04:00
Mark Charney
fa988755e2 test harness run-cmd.py porting to python3. print, map, file() stuff
Change-Id: I63002d1dcd0ac141d1c8f3a9c60a9ecb1a6c9cf4
(cherry picked from commit 1dcd2207edb5075b89f0d7d55e6eb6c6cb69de3f)
2017-06-12 14:41:24 -04:00
Mark Charney
c40152ab7f chipmodel: xrange() -> range()
Change-Id: I6caeb5f75ef63ee096f2f9e668389c9794d064ef
(cherry picked from commit 322c20fb02d0dd3a531453220ec64b78b84066ec)
2017-06-12 14:41:24 -04:00
Mark Charney
0e3904c7e9 more replacing file(fn).readline with open(fn,r).readline...
Change-Id: Id703f961092b33ebc2703158b0706e87194021e3
(cherry picked from commit ae122603a801f87c53619df54827417f561cce5a)
2017-06-12 14:41:24 -04:00
Mark Charney
dd5d596267 generator: division defaults to fp. use // for integer div
Change-Id: I7fd6a2ad0c099086d77ecdf0a98f7050a923659e
(cherry picked from commit eb68da22fc92558ce481d842fe2580ac6736b585)
2017-06-12 14:41:24 -04:00