mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
sh: Set the cfa_offset to 0 if we see a DW_CFA_def_cfa_register op
The way that the CFA is calculated can change as we progress through a function. If we see a DW_CFA_def_cfa_register op we need to reset the frame's cfa_offset value which may have been previously setup. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
@@ -449,6 +449,7 @@ static int dwarf_cfa_execute_insns(unsigned char *insn_start,
|
|||||||
count = dwarf_read_uleb128(current_insn,
|
count = dwarf_read_uleb128(current_insn,
|
||||||
&frame->cfa_register);
|
&frame->cfa_register);
|
||||||
current_insn += count;
|
current_insn += count;
|
||||||
|
frame->cfa_offset = 0;
|
||||||
frame->flags |= DWARF_FRAME_CFA_REG_OFFSET;
|
frame->flags |= DWARF_FRAME_CFA_REG_OFFSET;
|
||||||
break;
|
break;
|
||||||
case DW_CFA_def_cfa_offset:
|
case DW_CFA_def_cfa_offset:
|
||||||
|
Reference in New Issue
Block a user