| ; Test that --large-eh-encoding uses 8-byte encodings for personality, LSDA, | |
| ; and TType in x86_64 ELF targets. | |
| ; Default (small code model, no flag): sdata4 encodings | |
| ; RUN: llc -mtriple x86_64-pc-linux-gnu -code-model=small < %s | FileCheck %s --check-prefix=DEFAULT | |
| ; RUN: llc -mtriple x86_64-pc-linux-gnu -code-model=small -relocation-model=pic < %s | FileCheck %s --check-prefix=DEFAULT-PIC | |
| ; With --large-eh-encoding: sdata8 encodings | |
| ; RUN: llc -mtriple x86_64-pc-linux-gnu -code-model=small --large-eh-encoding < %s | FileCheck %s --check-prefix=LARGE | |
| ; RUN: llc -mtriple x86_64-pc-linux-gnu -code-model=small -relocation-model=pic --large-eh-encoding < %s | FileCheck %s --check-prefix=LARGE-PIC | |
| @_ZTIi = external constant ptr | |
| define i32 @main() uwtable personality ptr @__gxx_personality_v0 { | |
| entry: | |
| invoke void @foo() | |
| to label %try.cont unwind label %lpad | |
| lpad: | |
| %0 = landingpad { ptr, i32 } | |
| catch ptr @_ZTIi | |
| br label %try.cont | |
| try.cont: | |
| ret i32 0 | |
| } | |
| declare void @foo() | |
| declare i32 @__gxx_personality_v0(...) | |
| ;; Non-PIC, default: PersonalityEncoding = DW_EH_PE_udata4 = 3 | |
| ;; Non-PIC, default: LSDAEncoding = DW_EH_PE_udata4 = 3 | |
| ; DEFAULT: .cfi_personality 3, __gxx_personality_v0 | |
| ; DEFAULT-NEXT: .cfi_lsda 3, | |
| ;; PIC, default (small): PersonalityEncoding = DW_EH_PE_indirect|DW_EH_PE_pcrel|DW_EH_PE_sdata4 = 155 | |
| ;; PIC, default (small): LSDAEncoding = DW_EH_PE_pcrel|DW_EH_PE_sdata4 = 27 | |
| ; DEFAULT-PIC: .cfi_personality 155, DW.ref.__gxx_personality_v0 | |
| ; DEFAULT-PIC-NEXT: .cfi_lsda 27, | |
| ;; Non-PIC, large-eh-encoding: PersonalityEncoding = DW_EH_PE_absptr = 0 | |
| ;; Non-PIC, large-eh-encoding: LSDAEncoding = DW_EH_PE_absptr = 0 | |
| ; LARGE: .cfi_personality 0, __gxx_personality_v0 | |
| ; LARGE-NEXT: .cfi_lsda 0, | |
| ;; PIC, large-eh-encoding: PersonalityEncoding = DW_EH_PE_indirect|DW_EH_PE_pcrel|DW_EH_PE_sdata8 = 156 | |
| ;; PIC, large-eh-encoding: LSDAEncoding = DW_EH_PE_pcrel|DW_EH_PE_sdata8 = 28 | |
| ; LARGE-PIC: .cfi_personality 156, DW.ref.__gxx_personality_v0 | |
| ; LARGE-PIC-NEXT: .cfi_lsda 28, |