x86/objtool: Teach objtool about ERET[US]
Update the objtool decoder to know about the ERET[US] instructions (type INSN_CONTEXT_SWITCH). Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com> Signed-off-by: Xin Li <xin3.li@intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Tested-by: Shan Kang <shan.kang@intel.com> Link: https://lore.kernel.org/r/20231205105030.8698-11-xin3.li@intel.com
This commit is contained in:
parent
0115f8b1a2
commit
cd19bab825
@ -509,11 +509,20 @@ int arch_decode_instruction(struct objtool_file *file, const struct section *sec
|
||||
|
||||
if (op2 == 0x01) {
|
||||
|
||||
switch (insn_last_prefix_id(&ins)) {
|
||||
case INAT_PFX_REPE:
|
||||
case INAT_PFX_REPNE:
|
||||
if (modrm == 0xca)
|
||||
/* eretu/erets */
|
||||
insn->type = INSN_CONTEXT_SWITCH;
|
||||
break;
|
||||
default:
|
||||
if (modrm == 0xca)
|
||||
insn->type = INSN_CLAC;
|
||||
else if (modrm == 0xcb)
|
||||
insn->type = INSN_STAC;
|
||||
|
||||
break;
|
||||
}
|
||||
} else if (op2 >= 0x80 && op2 <= 0x8f) {
|
||||
|
||||
insn->type = INSN_JUMP_CONDITIONAL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user