mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00

Update NOTRACK prefix handling to support memory indirect branch for CET v2.0: https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf gas/ * config/tc-i386.c (md_assemble): Update NOTRACK prefix check. * testsuite/gas/i386/notrack-intel.d: Updated. * testsuite/gas/i386/notrack.d: Likewise. * testsuite/gas/i386/notrackbad.l: Likewise. * testsuite/gas/i386/x86-64-notrack-intel.d: Likewise. * testsuite/gas/i386/x86-64-notrack.d: Likewise. * testsuite/gas/i386/x86-64-notrackbad.l: Likewise. * testsuite/gas/i386/notrack.s: Add NOTRACK prefix tests with memory indirect branch. * testsuite/gas/i386/x86-64-notrack.s: Likewise. * testsuite/gas/i386/notrackbad.s: Remove memory indirect branch with NOTRACK prefix. * testsuite/gas/i386/x86-64-notrackbad.s: Likewise. opcodes/ * i386-dis.c (reg_table): Swap indirEv with NOTRACK on "call{&|}" and "jmp{&|}". (NOTRACK_Fixup): Support memory indirect branch with NOTRACK prefix.
58 lines
990 B
ArmAsm
58 lines
990 B
ArmAsm
# Check 32bit NOTRACK prefix
|
|
|
|
.allow_index_reg
|
|
.text
|
|
_start:
|
|
notrack call *%eax
|
|
notrack call *%ax
|
|
notrack jmp *%eax
|
|
notrack jmp *%ax
|
|
|
|
notrack call *(%eax)
|
|
notrack callw *(%eax)
|
|
notrack jmp *(%eax)
|
|
notrack jmpw *(%eax)
|
|
|
|
bnd notrack call *%eax
|
|
bnd notrack call *%ax
|
|
bnd notrack jmp *%eax
|
|
bnd notrack jmp *%ax
|
|
|
|
bnd notrack call *(%eax)
|
|
bnd notrack callw *(%eax)
|
|
bnd notrack jmp *(%eax)
|
|
bnd notrack jmpw *(%eax)
|
|
|
|
.intel_syntax noprefix
|
|
notrack call eax
|
|
notrack call ax
|
|
notrack jmp eax
|
|
notrack jmp ax
|
|
|
|
notrack call DWORD PTR [eax]
|
|
notrack call WORD PTR [eax]
|
|
notrack jmp DWORD PTR [eax]
|
|
notrack jmp WORD PTR [eax]
|
|
|
|
bnd notrack call eax
|
|
bnd notrack call ax
|
|
bnd notrack jmp eax
|
|
bnd notrack jmp ax
|
|
|
|
bnd notrack call DWORD PTR [eax]
|
|
bnd notrack call WORD PTR [eax]
|
|
bnd notrack jmp DWORD PTR [eax]
|
|
bnd notrack jmp WORD PTR [eax]
|
|
|
|
# ds bnd call *%eax
|
|
.byte 0x3e
|
|
.byte 0xf2
|
|
.byte 0xff
|
|
.byte 0xd0
|
|
|
|
# ds callw *%ax
|
|
.byte 0x3e
|
|
.byte 0x66
|
|
.byte 0xff
|
|
.byte 0xd0
|