On Fri, Jul 31, 2020 at 08:00:58AM +0100, Julien Thierry wrote:
+ cfa->offset = hint->sp_offset;
+ insn->cfi.hint_type = hint->type;
+ insn->cfi.end = hint->end;
+
+ insn->cfi.sp_only = hint->type == ORC_TYPE_REGS || hint->type == ORC_TYPE_REGS_IRET;
What does "sp" mean here in sp_only?
Stack pointer, like in CFI_SP. When objtool encounters one of these hints,
it starts to only track the stack frame with the stack pointer (no BP, no
drap register, no move to temporary registers). Just trying to make some
sense of this corner case.
I think that's not quite right, because ORC_TYPE_CALL could also be
"sp_only" in some cases, by that definition.
The call to update_cfi_state_regs() is really regs-specific, not
sp-specific.