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:
Родитель
8e78a6e4e1
Коммит
3153fb2601
|
@ -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__)
|
||||
|
|
Двоичные данные
Resources/Tests/PLCrashAsyncCompactUnwindEncodingTests/test.ios
Двоичные данные
Resources/Tests/PLCrashAsyncCompactUnwindEncodingTests/test.ios
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
Resources/Tests/PLCrashAsyncCompactUnwindEncodingTests/test.sim
Двоичные данные
Resources/Tests/PLCrashAsyncCompactUnwindEncodingTests/test.sim
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче