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. -- Josh