On Tue, Apr 07, 2020 at 09:31:38AM +0200, Alexandre Chartre wrote:
index a62e032863a8..7ee1561bf7ad 100644
--- a/tools/objtool/arch/x86/decode.c
+++ b/tools/objtool/arch/x86/decode.c
@@ -497,3 +497,15 @@ void arch_initial_func_cfi_state(struct cfi_state *state)
state->regs[16].base = CFI_CFA;
state->regs[16].offset = -8;
}
+
+
+void arch_configure_intra_function_call(struct stack_op *op)
+{
+ /*
+ * For the impact on the stack, make an intra-function
+ * call behaves like a push of an immediate value (the
+ * return address).
+ */
+ op->src.type = OP_SRC_CONST;
+ op->dest.type = OP_DEST_PUSH;
+}
An alternative is to always set up stack ops for CALL/RET on decode, but
conditionally run update_insn_state() for them.
Not sure that makes more logical sense, but the patch would be simpler I
think.