> i spoted failing execution tests that expected to pass,
> it turns out change_cfi_row() needs something like
> 
> -  if (!old_row->window_save && new_row->window_save)
> +  if (old_row->window_save != new_row->window_save)
> 
> to generate .cfi_window_save that correctly tracks the
> toggled state on aarch64, but i assume sparc wants
> something else, i added Eric to CC he might know what's
> right for the old&&!new case on sparc, any help is
> welcome, the logic was added in
> 
> commit dfe1fe91dbc7f068bb3efcee40237caacc0c53ae

Yes, you cannot really "toggle" a register window on SPARC.

> i can imagine adding a new bool flag in dw_cfi_row
> for aarch64 or making the logic target specific
> (depending on if the target uses REG_CFA_WINDOW_SAVE
> or REG_CFA_TOGGLE_RA_MANGLE for cfi_window_save)

Yes, please do not hijack again the SPARC logic here.

-- 
Eric Botcazou

Reply via email to