| ; Test that on AArch64 the personality, LSDA, and TType EH encodings already | |
| ; default to 8-byte (sdata8), so --large-eh-encoding leaves them unchanged. | |
| ; The flag's only effect on AArch64 is the FDE CFI encoding, which is checked | |
| ; in llvm/test/MC/AArch64/large-eh-encoding.s. | |
| ; Without the flag, with the flag, and with the flag under PIC all produce the | |
| ; same sdata8 encodings (the AArch64 case does not depend on the reloc model). | |
| ; RUN: llc -mtriple aarch64-linux-gnu < %s | FileCheck %s | |
| ; RUN: llc -mtriple aarch64-linux-gnu --large-eh-encoding < %s | FileCheck %s | |
| ; RUN: llc -mtriple aarch64-linux-gnu -relocation-model=pic --large-eh-encoding < %s | FileCheck %s | |
| @_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(...) | |
| ;; AArch64 always uses these regardless of --large-eh-encoding / reloc model: | |
| ;; PersonalityEncoding = DW_EH_PE_indirect|DW_EH_PE_pcrel|DW_EH_PE_sdata8 = 156 | |
| ;; LSDAEncoding = DW_EH_PE_pcrel|DW_EH_PE_sdata8 = 28 | |
| ; CHECK: .cfi_personality 156, DW.ref.__gxx_personality_v0 | |
| ; CHECK: .cfi_lsda 28, |