Re: [PATCH] x86: accept LOCK on control register accesses only with ModR/M.reg == 0
Christian Ludloff <[email protected]>
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <CAKSQd8W9qdwvq8gFGPheYJnExeq5yeCUsNLx6doR-OEdmFqtJA@mail.gmail.com> |
If you zoom out, there are four variants of MOV from/to CRx, listed here in chronological order: 1) 32-bit CR0/2/3 (386, !PM64) 2) 32-bit CR4 (486, !PM64) 3) 64-bit CR0/2/3/4/8 (x64, PM64) 4) 32-bit CR8D (LockMovCr0/AltMovCr8, !PM64) In theory 1) and 2) are D-suffixed just like 4). As they predate x86, the suffix was always omitted. Some tools support the entire 0-7/15/31 ranges that can be encoded with classic/x64/APX. And the mod=00b/01b/10b aliases, for the 11b case. Anyway... treating 64-bit CR8 and 32-bit CR8D as distinct... can make x86 asm life less painful. :) -- C.