https://sourceware.org/bugzilla/show_bug.cgi?id=32953
Bug ID: 32953
Summary: sframe: incorrect handling of .cfi_same_value in gas
Product: binutils
Version: 2.45 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: indu.bhagat at oracle dot com
Target Milestone: ---
Currently gas skips processing the .cfi_same_value for SFrame generation
altogether (with no warning either). This would be OK to do if the directive
was known to not affect the registers deemed interesting for SFrame - SP/FP/RA.
As per documentation, .cfi_same_value indicates that: Current value of register
is the same like in the previous frame, i.e. no restoration needed. SFrame has
no means to encode this information. So at least for the interesting
registers, skipping .cfi_same_value is not the right thing to do.
On x86_64:
$ cat cfi_same_value.s
.cfi_startproc
.long 0
.cfi_def_cfa_offset 16
.cfi_same_value 0x6
.long 0
.cfi_endproc
$ as --gsframe cfi_same_value.s -o cfi_same_value.o
$ objdump --sframe cfi_same_value.o
cfi_same_value.o: file format elf64-x86-64
Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
Flags: NONE
CFA fixed RA offset: -8
Num FDEs: 1
Num FREs: 2
Function Index :
func idx [0]: pc = 0x0, size = 8 bytes
STARTPC CFA FP RA
0000000000000000 sp+8 u f
0000000000000004 sp+16 u f
--
You are receiving this mail because:
You are on the CC list for the bug.