[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200407130729.GZ20730@hirez.programming.kicks-ass.net>
Date: Tue, 7 Apr 2020 15:07:29 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Alexandre Chartre <alexandre.chartre@...cle.com>
Cc: x86@...nel.org, linux-kernel@...r.kernel.org, jpoimboe@...hat.com,
jthierry@...hat.com, tglx@...utronix.de
Subject: Re: [PATCH V2 5/9] objtool: Add support for intra-function calls
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.
Powered by blists - more mailing lists