Stub out example CFI that generates a common compact unwind entry table.

This is only a temporary solution, as relying the assembler producing
specific output given a set of CFI input directives is 1) annoying to
work with, and 2) likely to fail due to future toolchain changes.
This commit is contained in:
Landon Fuller 2013-03-12 15:44:26 -04:00
Родитель 8e78a6e4e1
Коммит 3153fb2601
4 изменённых файлов: 33 добавлений и 1 удалений

Просмотреть файл

@ -1,9 +1,41 @@
#if defined(__x86_64__)
// This triggers common encoding handling with _main
.globl _main_common
_main_common:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
movl $5, %eax
popq %rbp
ret
.cfi_endproc
// This hack forces the use of a common encoding
// by preventing the use of an entry range that includes
// both _main_common and _main
.globl _main_noncommon
_main_noncommon:
.cfi_startproc
.cfi_def_cfa_offset 32
nop
ret
.cfi_endproc
.globl _main
_main:
.cfi_startproc
// TODO
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
movl $5, %eax
popq %rbp
ret
.cfi_endproc
#elif defined(__i386__)

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.