Specify MIPS floating-pointer registers in CFI directives

36 Views Asked by At

I'm trying to generate a call-frame info about saved FP register on MIPS:

  .text

  .cfi_startproc

  addiu $sp, $sp, -4
  .cfi_adjust_cfa_offset 4
  swc1 $f24, 4($sp)
  .cfi_rel_offset $f24, 0

  .cfi_endproc

but this results in

$ mipsel-linux-gnu-gcc ~/test.S -c
/home/yugr/test.S: Assembler messages:
/home/yugr/test.S:8: Error: bad register expression

How can I provide CFI info for FP register?

1

There are 1 best solutions below

2
yugr On BEST ANSWER

One simple alternative is to use the register's DWARF number explicitly. DWARF number of $fN is N+32 so for code above I'll need to do

  .cfi_rel_offset 56, 0