File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
tools/objtool/arch/x86/include/asm Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -208,4 +208,22 @@ static inline int insn_offset_immediate(struct insn *insn)
208
208
return insn_offset_displacement (insn ) + insn -> displacement .nbytes ;
209
209
}
210
210
211
+ #define POP_SS_OPCODE 0x1f
212
+ #define MOV_SREG_OPCODE 0x8e
213
+
214
+ /*
215
+ * Intel SDM Vol.3A 6.8.3 states;
216
+ * "Any single-step trap that would be delivered following the MOV to SS
217
+ * instruction or POP to SS instruction (because EFLAGS.TF is 1) is
218
+ * suppressed."
219
+ * This function returns true if @insn is MOV SS or POP SS. On these
220
+ * instructions, single stepping is suppressed.
221
+ */
222
+ static inline int insn_masking_exception (struct insn * insn )
223
+ {
224
+ return insn -> opcode .bytes [0 ] == POP_SS_OPCODE ||
225
+ (insn -> opcode .bytes [0 ] == MOV_SREG_OPCODE &&
226
+ X86_MODRM_REG (insn -> modrm .bytes [0 ]) == 2 );
227
+ }
228
+
211
229
#endif /* _ASM_X86_INSN_H */
You can’t perform that action at this time.
0 commit comments