[llvm-commits] [PATCH]: .cfi_register and .cfi_undefined

Roman Divacky rdivacky at freebsd.org
Wed Nov 14 07:51:39 PST 2012


Hi,

The attached patch implements .cfi_register and .cfi_undefined. It's based
on a patch from PaX team.

I am getting these test results with it:

test case:

.cfi_startproc

.cfi_register %rdi, %rax
nop
.cfi_undefined %rdx

.cfi_endproc

gnu as:

  # Section 4
  (('sh_name', 0x00000031) # '.eh_frame'
   ('sh_type', 0x00000001)
   ('sh_flags', 0x0000000000000002)
   ('sh_addr', 0x0000000000000000)
   ('sh_offset', 0x0000000000000048)
   ('sh_size', 0x0000000000000030)
   ('sh_link', 0x00000000)
   ('sh_info', 0x00000000)
   ('sh_addralign', 0x0000000000000008)
   ('sh_entsize', 0x0000000000000000)
   ('_section_data', '18000000 00000000 017a5200 01781001 1b0c0708 90010905 00000000 10000000 20000000 00000000 01000000 00410701')
  ),


llvm as:

  # Section 4
  (('sh_name', 0x00000011) # '.eh_frame'
   ('sh_type', 0x00000001)
   ('sh_flags', 0x0000000000000002)
   ('sh_addr', 0x0000000000000000)
   ('sh_offset', 0x0000000000000048)
   ('sh_size', 0x0000000000000030)
   ('sh_link', 0x00000000)
   ('sh_info', 0x00000000)
   ('sh_addralign', 0x0000000000000008)
   ('sh_entsize', 0x0000000000000000)
   ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 01000000 00800141 07010000')

The output for cfi_undefined is the same (0701), the cfi_register differs, but it's implemented
using already existing code.

What do you think?

Roman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm.mc.cfi.patch
Type: text/x-diff
Size: 8725 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121114/0c30a67e/attachment.patch>


More information about the llvm-commits mailing list