diff options
Diffstat (limited to 'test/CodeGen/SPARC/exception.ll')
-rw-r--r-- | test/CodeGen/SPARC/exception.ll | 119 |
1 files changed, 99 insertions, 20 deletions
diff --git a/test/CodeGen/SPARC/exception.ll b/test/CodeGen/SPARC/exception.ll index cb5b6e5..3a3f59f 100644 --- a/test/CodeGen/SPARC/exception.ll +++ b/test/CodeGen/SPARC/exception.ll @@ -1,4 +1,9 @@ -; RUN: llc < %s -march=sparc | FileCheck %s +; RUN: llc < %s -march=sparc -relocation-model=static | FileCheck -check-prefix=V8ABS %s +; RUN: llc < %s -march=sparc -relocation-model=pic | FileCheck -check-prefix=V8PIC %s +; RUN: llc < %s -march=sparc -relocation-model=pic -disable-cfi | FileCheck -check-prefix=V8PIC_NOCFI %s +; RUN: llc < %s -march=sparcv9 -relocation-model=static | FileCheck -check-prefix=V9ABS %s +; RUN: llc < %s -march=sparcv9 -relocation-model=pic | FileCheck -check-prefix=V9PIC %s +; RUN: llc < %s -march=sparcv9 -relocation-model=pic -disable-cfi | FileCheck -check-prefix=V9PIC_NOCFI %s %struct.__fundamental_type_info_pseudo = type { %struct.__type_info_pseudo } @@ -6,25 +11,99 @@ @_ZTIi = external constant %struct.__fundamental_type_info_pseudo @_ZTIf = external constant %struct.__fundamental_type_info_pseudo -@.cst = linker_private unnamed_addr constant [12 x i8] c"catched int\00", align 64 -@.cst1 = linker_private unnamed_addr constant [14 x i8] c"catched float\00", align 64 - -; CHECK-LABEL: main: -; CHECK: .cfi_startproc -; CHECK: .cfi_def_cfa_register 30 -; CHECK: .cfi_window_save -; CHECK: .cfi_register 15, 31 - -; CHECK: call __cxa_throw -; CHECK: call __cxa_throw - -; CHECK: call __cxa_begin_catch -; CHECK: call __cxa_end_catch - -; CHECK: call __cxa_begin_catch -; CHECK: call __cxa_end_catch - -; CHECK: .cfi_endproc +@.cst = private unnamed_addr constant [12 x i8] c"catched int\00", align 64 +@.cst1 = private unnamed_addr constant [14 x i8] c"catched float\00", align 64 + +; V8ABS-LABEL: main: +; V8ABS: .cfi_startproc +; V8ABS: .cfi_personality 0, __gxx_personality_v0 +; V8ABS: .cfi_lsda 0, +; V8ABS: .cfi_def_cfa_register {{30|%fp}} +; V8ABS: .cfi_window_save +; V8ABS: .cfi_register 15, 31 + +; V8ABS: call __cxa_throw +; V8ABS: call __cxa_throw + +; V8ABS: call __cxa_begin_catch +; V8ABS: call __cxa_end_catch + +; V8ABS: call __cxa_begin_catch +; V8ABS: call __cxa_end_catch + +; V8ABS: .cfi_endproc + +; V8PIC-LABEL: main: +; V8PIC: .cfi_startproc +; V8PIC: .cfi_personality 155, DW.ref.__gxx_personality_v0 +; V8PIC: .cfi_lsda 27, +; V8PIC: .cfi_def_cfa_register {{30|%fp}} +; V8PIC: .cfi_window_save +; V8PIC: .cfi_register 15, 31 +; V8PIC: .section .gcc_except_table +; V8PIC-NOT: .section +; V8PIC: .word %r_disp32(.L_ZTIi.DW.stub) +; V8PIC: .data +; V8PIC: .L_ZTIi.DW.stub: +; V8PIC-NEXT: .word _ZTIi + +; V8PIC_NOCFI-LABEL: main: +; V8PIC_NOCFI: .section .gcc_except_table +; V8PIC_NOCFI-NOT: .section +; V8PIC_NOCFI: .word %r_disp32(.L_ZTIi.DW.stub) +; V8PIC_NOCFI: .data +; V8PIC_NOCFI: .L_ZTIi.DW.stub: +; V8PIC_NOCFI-NEXT: .word _ZTIi +; V8PIC_NOCFI: .section .eh_frame +; V8PIC_NOCFI-NOT: .section +; V8PIC_NOCFI: .byte 15 ! CIE Return Address Column +; V8PIC_NOCFI: .word %r_disp32(DW.ref.__gxx_personality_v0) +; V8PIC_NOCFI: .byte 12 ! DW_CFA_def_cfa +; V8PIC_NOCFI: .byte 14 ! Reg 14 +; V8PIC_NOCFI-NEXT: .byte 0 ! Offset 0 +; V8PIC_NOCFI: .word %r_disp32(.Ltmp{{.+}}) ! FDE initial location + + +; V9ABS-LABEL: main: +; V9ABS: .cfi_startproc +; V9ABS: .cfi_personality 0, __gxx_personality_v0 +; V9ABS: .cfi_lsda 27, +; V9ABS: .cfi_def_cfa_register {{30|%fp}} +; V9ABS: .cfi_window_save +; V9ABS: .cfi_register 15, 31 +; V9ABS: .section .gcc_except_table +; V9ABS-NOT: .section +; V9ABS: .xword _ZTIi + +; V9PIC-LABEL: main: +; V9PIC: .cfi_startproc +; V9PIC: .cfi_personality 155, DW.ref.__gxx_personality_v0 +; V9PIC: .cfi_lsda 27, +; V9PIC: .cfi_def_cfa_register {{30|%fp}} +; V9PIC: .cfi_window_save +; V9PIC: .cfi_register 15, 31 +; V9PIC: .section .gcc_except_table +; V9PIC-NOT: .section +; V9PIC: .word %r_disp32(.L_ZTIi.DW.stub) +; V9PIC: .data +; V9PIC: .L_ZTIi.DW.stub: +; V9PIC-NEXT: .xword _ZTIi + +; V9PIC_NOCFI-LABEL: main: +; V9PIC_NOCFI: .section .gcc_except_table +; V9PIC_NOCFI-NOT: .section +; V9PIC_NOCFI: .word %r_disp32(.L_ZTIi.DW.stub) +; V9PIC_NOCFI: .data +; V9PIC_NOCFI: .L_ZTIi.DW.stub: +; V9PIC_NOCFI-NEXT: .xword _ZTIi +; V9PIC_NOCFI: .section .eh_frame +; V9PIC_NOCFI-NOT: .section +; V9PIC_NOCFI: .byte 15 ! CIE Return Address Column +; V9PIC_NOCFI: .word %r_disp32(DW.ref.__gxx_personality_v0) +; V9PIC_NOCFI: .byte 12 ! DW_CFA_def_cfa +; V9PIC_NOCFI-NEXT: .byte 14 ! Reg 14 +; V9PIC_NOCFI: .ascii "\377\017" ! Offset 2047 +; V9PIC_NOCFI: .word %r_disp32(.Ltmp{{.+}}) ! FDE initial location define i32 @main(i32 %argc, i8** nocapture readnone %argv) unnamed_addr #0 { entry: |