aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-opc.h
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2024-01-15 01:00:27 -0800
committerIndu Bhagat <indu.bhagat@oracle.com>2024-01-15 03:31:35 -0800
commit448cf9e67d3fe9edbef70d4cfcc32d1816603370 (patch)
tree1bc1254a63c673b3d45364a551fe11ba6a7c343a /opcodes/i386-opc.h
parent3037cefe56affe48ac53d85b9e33c2c3a408c41f (diff)
downloadbinutils-448cf9e67d3fe9edbef70d4cfcc32d1816603370.zip
binutils-448cf9e67d3fe9edbef70d4cfcc32d1816603370.tar.gz
binutils-448cf9e67d3fe9edbef70d4cfcc32d1816603370.tar.bz2
opcodes: x86: new marker for insns that implicitly update stack pointer
Some x86 instructions affect the stack pointer implicitly. Add a new operand constraint to reflect this. This will be useful for SCFI implmentation to ensure its correctness. Mark all push, pop, call, ret, enter, leave, INT, iret instructions. opcodes/ * i386-gen.c: Update opcode_modifiers. * i386-opc.h: Add a new constraint. * i386-opc.tbl: Update the affected instructions. * i386-tbl.h: Regenerated.
Diffstat (limited to 'opcodes/i386-opc.h')
-rw-r--r--opcodes/i386-opc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 889636e..004d9ee 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -579,6 +579,8 @@ enum
/* Instrucion requires that destination must be distinct from source
registers. */
#define DISTINCT_DEST 9
+ /* Instruction updates stack pointer implicitly. */
+#define IMPLICIT_STACK_OP 10
OperandConstraint,
/* instruction ignores operand size prefix and in Intel mode ignores
mnemonic size suffix check. */