Created
July 25, 2017 03:04
-
-
Save modocache/484ae7c2b950928ad0524bf6036ffebb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/test/CodeGen/ARM/swifterror.ll b/test/CodeGen/ARM/swifterror.ll | |
index b02adf7912b..afe83db64d0 100644 | |
--- a/test/CodeGen/ARM/swifterror.ll | |
+++ b/test/CodeGen/ARM/swifterror.ll | |
@@ -1,5 +1,6 @@ | |
; RUN: llc -verify-machineinstrs < %s -mtriple=armv7-apple-ios | FileCheck --check-prefix=CHECK-APPLE --check-prefix=CHECK-ARMV7 %s | |
; RUN: llc -verify-machineinstrs -O0 < %s -mtriple=armv7-apple-ios | FileCheck --check-prefix=CHECK-O0 %s | |
+; RUN: llc -verify-machineinstrs < %s -mtriple=armv7-none-linux-androideabi | FileCheck --check-prefix=CHECK-ARMV7 %s | |
declare i8* @malloc(i64) | |
declare void @free(i8*) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.text | |
.syntax unified | |
.eabi_attribute 67, "2.09" @ Tag_conformance | |
.eabi_attribute 6, 10 @ Tag_CPU_arch | |
.eabi_attribute 7, 65 @ Tag_CPU_arch_profile | |
.eabi_attribute 8, 1 @ Tag_ARM_ISA_use | |
.eabi_attribute 9, 2 @ Tag_THUMB_ISA_use | |
.fpu neon | |
.eabi_attribute 34, 1 @ Tag_CPU_unaligned_access | |
.eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use | |
.eabi_attribute 20, 1 @ Tag_ABI_FP_denormal | |
.eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions | |
.eabi_attribute 23, 3 @ Tag_ABI_FP_number_model | |
.eabi_attribute 24, 1 @ Tag_ABI_align_needed | |
.eabi_attribute 25, 1 @ Tag_ABI_align_preserved | |
.eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format | |
.eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use | |
.file "<stdin>" | |
.globl foo @ -- Begin function foo | |
.p2align 2 | |
.type foo,%function | |
.code 32 @ @foo | |
foo: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r7, lr} | |
push {r7, lr} | |
mov r0, #16 | |
mov r1, #0 | |
bl malloc | |
mov r1, r0 | |
mov r0, #1 | |
strb r0, [r1, #8] | |
mov r0, #1065353216 | |
mov r8, r1 | |
pop {r7, pc} | |
.Lfunc_end0: | |
.size foo, .Lfunc_end0-foo | |
.fnend | |
@ -- End function | |
.globl caller @ -- Begin function caller | |
.p2align 2 | |
.type caller,%function | |
.code 32 @ @caller | |
caller: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, r8, r11, lr} | |
push {r4, r8, r11, lr} | |
.pad #8 | |
sub sp, sp, #8 | |
mov r8, #0 | |
mov r4, r0 | |
bl foo | |
cmp r8, #0 | |
ldrbeq r0, [r8, #8] | |
strbeq r0, [r4] | |
mov r0, r8 | |
bl free | |
mov r0, #1065353216 | |
add sp, sp, #8 | |
pop {r4, r8, r11, pc} | |
.Lfunc_end1: | |
.size caller, .Lfunc_end1-caller | |
.fnend | |
@ -- End function | |
.globl caller2 @ -- Begin function caller2 | |
.p2align 2 | |
.type caller2,%function | |
.code 32 @ @caller2 | |
caller2: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, r8, r11, lr} | |
push {r4, r8, r11, lr} | |
.vsave {d8} | |
vpush {d8} | |
.pad #8 | |
sub sp, sp, #8 | |
vmov.f32 s16, #1.000000e+00 | |
mov r4, r0 | |
.LBB2_1: @ %bb_loop | |
@ =>This Inner Loop Header: Depth=1 | |
mov r8, #0 | |
bl foo | |
cmp r8, #0 | |
bne .LBB2_4 | |
@ BB#2: @ %cont | |
@ in Loop: Header=BB2_1 Depth=1 | |
vmov s0, r0 | |
vcmpe.f32 s0, s16 | |
vmrs APSR_nzcv, fpscr | |
ble .LBB2_1 | |
@ BB#3: @ %bb_end | |
ldrb r0, [r8, #8] | |
strb r0, [r4] | |
.LBB2_4: @ %handler | |
mov r0, r8 | |
bl free | |
mov r0, #1065353216 | |
add sp, sp, #8 | |
vpop {d8} | |
pop {r4, r8, r11, pc} | |
.Lfunc_end2: | |
.size caller2, .Lfunc_end2-caller2 | |
.fnend | |
@ -- End function | |
.globl foo_if @ -- Begin function foo_if | |
.p2align 2 | |
.type foo_if,%function | |
.code 32 @ @foo_if | |
foo_if: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r7, lr} | |
push {r7, lr} | |
cmp r0, #0 | |
beq .LBB3_2 | |
@ BB#1: @ %gen_error | |
mov r0, #16 | |
mov r1, #0 | |
bl malloc | |
mov r1, r0 | |
mov r0, #1 | |
strb r0, [r1, #8] | |
mov r0, #1065353216 | |
mov r8, r1 | |
pop {r7, pc} | |
.LBB3_2: @ %normal | |
mov r0, #0 | |
pop {r7, pc} | |
.Lfunc_end3: | |
.size foo_if, .Lfunc_end3-foo_if | |
.fnend | |
@ -- End function | |
.globl foo_loop @ -- Begin function foo_loop | |
.p2align 2 | |
.type foo_loop,%function | |
.code 32 @ @foo_loop | |
foo_loop: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, r5, r7, lr} | |
push {r4, r5, r7, lr} | |
.vsave {d8, d9} | |
vpush {d8, d9} | |
vmov.f32 s18, #1.000000e+00 | |
mov r4, r0 | |
vmov s16, r1 | |
mov r2, r8 | |
mov r5, #1 | |
.LBB4_1: @ %bb_loop | |
@ =>This Inner Loop Header: Depth=1 | |
cmp r4, #0 | |
beq .LBB4_3 | |
@ BB#2: @ %gen_error | |
@ in Loop: Header=BB4_1 Depth=1 | |
mov r0, #16 | |
mov r1, #0 | |
bl malloc | |
mov r2, r0 | |
strb r5, [r2, #8] | |
.LBB4_3: @ %bb_cont | |
@ in Loop: Header=BB4_1 Depth=1 | |
vcmpe.f32 s16, s18 | |
vmrs APSR_nzcv, fpscr | |
ble .LBB4_1 | |
@ BB#4: @ %bb_end | |
mov r0, #0 | |
mov r8, r2 | |
vpop {d8, d9} | |
pop {r4, r5, r7, pc} | |
.Lfunc_end4: | |
.size foo_loop, .Lfunc_end4-foo_loop | |
.fnend | |
@ -- End function | |
.globl foo_sret @ -- Begin function foo_sret | |
.p2align 2 | |
.type foo_sret,%function | |
.code 32 @ @foo_sret | |
foo_sret: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, r5, r7, lr} | |
push {r4, r5, r7, lr} | |
mov r4, r1 | |
mov r5, r0 | |
mov r0, #16 | |
mov r1, #0 | |
bl malloc | |
mov r1, #1 | |
mov r8, r0 | |
strb r1, [r0, #8] | |
str r4, [r5, #4] | |
pop {r4, r5, r7, pc} | |
.Lfunc_end5: | |
.size foo_sret, .Lfunc_end5-foo_sret | |
.fnend | |
@ -- End function | |
.globl caller3 @ -- Begin function caller3 | |
.p2align 2 | |
.type caller3,%function | |
.code 32 @ @caller3 | |
caller3: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, r8, r11, lr} | |
push {r4, r8, r11, lr} | |
.pad #32 | |
sub sp, sp, #32 | |
mov r4, r0 | |
add r0, sp, #8 | |
mov r1, #1 | |
mov r8, #0 | |
bl foo_sret | |
cmp r8, #0 | |
ldrbeq r0, [r8, #8] | |
strbeq r0, [r4] | |
mov r0, r8 | |
bl free | |
mov r0, #1065353216 | |
add sp, sp, #32 | |
pop {r4, r8, r11, pc} | |
.Lfunc_end6: | |
.size caller3, .Lfunc_end6-caller3 | |
.fnend | |
@ -- End function | |
.globl foo_vararg @ -- Begin function foo_vararg | |
.p2align 2 | |
.type foo_vararg,%function | |
.code 32 @ @foo_vararg | |
foo_vararg: | |
.fnstart | |
@ BB#0: @ %entry | |
.pad #16 | |
sub sp, sp, #16 | |
.save {r7, lr} | |
push {r7, lr} | |
.pad #24 | |
sub sp, sp, #24 | |
add r8, sp, #32 | |
stm r8, {r0, r1, r2, r3} | |
mov r0, #16 | |
mov r1, #0 | |
bl malloc | |
mov r1, r0 | |
mov r0, #1 | |
strb r0, [r1, #8] | |
add r0, sp, #32 | |
orr r0, r0, #4 | |
ldr r2, [sp, #32] | |
mov r8, r1 | |
ldr r3, [r0], #4 | |
str r2, [sp, #12] | |
add r2, r0, #4 | |
str r3, [sp, #8] | |
str r2, [sp, #16] | |
ldr r0, [r0] | |
str r0, [sp, #4] | |
mov r0, #1065353216 | |
add sp, sp, #24 | |
pop {r7, lr} | |
add sp, sp, #16 | |
bx lr | |
.Lfunc_end7: | |
.size foo_vararg, .Lfunc_end7-foo_vararg | |
.fnend | |
@ -- End function | |
.globl caller4 @ -- Begin function caller4 | |
.p2align 2 | |
.type caller4,%function | |
.code 32 @ @caller4 | |
caller4: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, r8, r11, lr} | |
push {r4, r8, r11, lr} | |
.pad #16 | |
sub sp, sp, #16 | |
mov r4, r0 | |
mov r0, #11 | |
str r0, [sp, #4] | |
mov r0, #10 | |
str r0, [sp, #8] | |
mov r0, #12 | |
str r0, [sp] | |
mov r8, #0 | |
mov r0, #10 | |
mov r1, #11 | |
mov r2, #12 | |
bl foo_vararg | |
cmp r8, #0 | |
ldrbeq r0, [r8, #8] | |
strbeq r0, [r4] | |
mov r0, r8 | |
bl free | |
mov r0, #1065353216 | |
add sp, sp, #16 | |
pop {r4, r8, r11, pc} | |
.Lfunc_end8: | |
.size caller4, .Lfunc_end8-caller4 | |
.fnend | |
@ -- End function | |
.globl tailcallswifterror @ -- Begin function tailcallswifterror | |
.p2align 2 | |
.type tailcallswifterror,%function | |
.code 32 @ @tailcallswifterror | |
tailcallswifterror: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r7, lr} | |
push {r7, lr} | |
bl tailcallswifterror | |
pop {r7, pc} | |
.Lfunc_end9: | |
.size tailcallswifterror, .Lfunc_end9-tailcallswifterror | |
.fnend | |
@ -- End function | |
.globl tailcallswifterror_swiftcc @ -- Begin function tailcallswifterror_swiftcc | |
.p2align 2 | |
.type tailcallswifterror_swiftcc,%function | |
.code 32 @ @tailcallswifterror_swiftcc | |
tailcallswifterror_swiftcc: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r7, lr} | |
push {r7, lr} | |
bl tailcallswifterror_swiftcc | |
pop {r7, pc} | |
.Lfunc_end10: | |
.size tailcallswifterror_swiftcc, .Lfunc_end10-tailcallswifterror_swiftcc | |
.fnend | |
@ -- End function | |
.globl swifterror_clobber @ -- Begin function swifterror_clobber | |
.p2align 2 | |
.type swifterror_clobber,%function | |
.code 32 @ @swifterror_clobber | |
swifterror_clobber: | |
.fnstart | |
@ BB#0: | |
mov r0, r8 | |
@APP | |
nop | |
@NO_APP | |
mov r8, r0 | |
bx lr | |
.Lfunc_end11: | |
.size swifterror_clobber, .Lfunc_end11-swifterror_clobber | |
.fnend | |
@ -- End function | |
.globl swifterror_reg_clobber @ -- Begin function swifterror_reg_clobber | |
.p2align 2 | |
.type swifterror_reg_clobber,%function | |
.code 32 @ @swifterror_reg_clobber | |
swifterror_reg_clobber: | |
.fnstart | |
@ BB#0: | |
.save {r8, lr} | |
push {r8, lr} | |
@APP | |
nop | |
@NO_APP | |
pop {r8, pc} | |
.Lfunc_end12: | |
.size swifterror_reg_clobber, .Lfunc_end12-swifterror_reg_clobber | |
.fnend | |
@ -- End function | |
.globl params_in_reg @ -- Begin function params_in_reg | |
.p2align 2 | |
.type params_in_reg,%function | |
.code 32 @ @params_in_reg | |
params_in_reg: | |
.fnstart | |
@ BB#0: | |
.save {r4, r5, r6, r7, r10, r11, lr} | |
push {r4, r5, r6, r7, r10, r11, lr} | |
.pad #12 | |
sub sp, sp, #12 | |
str r8, [sp, #4] @ 4-byte Spill | |
mov r5, r10 | |
mov r6, r3 | |
mov r7, r2 | |
mov r4, r1 | |
mov r11, r0 | |
mov r0, #1 | |
mov r1, #2 | |
mov r2, #3 | |
mov r3, #4 | |
mov r10, #0 | |
mov r8, #0 | |
bl params_in_reg2 | |
ldr r8, [sp, #4] @ 4-byte Reload | |
mov r0, r11 | |
mov r1, r4 | |
mov r2, r7 | |
mov r3, r6 | |
mov r10, r5 | |
bl params_in_reg2 | |
add sp, sp, #12 | |
pop {r4, r5, r6, r7, r10, r11, pc} | |
.Lfunc_end13: | |
.size params_in_reg, .Lfunc_end13-params_in_reg | |
.fnend | |
@ -- End function | |
.globl params_and_return_in_reg @ -- Begin function params_and_return_in_reg | |
.p2align 2 | |
.type params_and_return_in_reg,%function | |
.code 32 @ @params_and_return_in_reg | |
params_and_return_in_reg: | |
.fnstart | |
@ BB#0: | |
.save {r4, r5, r6, r7, r10, r11, lr} | |
push {r4, r5, r6, r7, r10, r11, lr} | |
.pad #12 | |
sub sp, sp, #12 | |
mov r5, r8 | |
str r10, [sp, #4] @ 4-byte Spill | |
mov r6, r3 | |
mov r7, r2 | |
mov r4, r1 | |
mov r11, r0 | |
mov r0, #1 | |
mov r1, #2 | |
mov r2, #3 | |
mov r3, #4 | |
mov r10, #0 | |
mov r8, #0 | |
bl params_in_reg2 | |
ldr r10, [sp, #4] @ 4-byte Reload | |
mov r0, r11 | |
str r8, [sp] @ 4-byte Spill | |
mov r1, r4 | |
mov r2, r7 | |
mov r3, r6 | |
mov r8, r5 | |
bl params_and_return_in_reg2 | |
mov r11, r8 | |
ldr r8, [sp] @ 4-byte Reload | |
mov r4, r0 | |
mov r6, r1 | |
mov r7, r2 | |
mov r5, r3 | |
mov r0, #1 | |
mov r1, #2 | |
mov r2, #3 | |
mov r3, #4 | |
mov r10, #0 | |
bl params_in_reg2 | |
mov r0, r4 | |
mov r1, r6 | |
mov r2, r7 | |
mov r3, r5 | |
mov r8, r11 | |
add sp, sp, #12 | |
pop {r4, r5, r6, r7, r10, r11, pc} | |
.Lfunc_end14: | |
.size params_and_return_in_reg, .Lfunc_end14-params_and_return_in_reg | |
.fnend | |
@ -- End function | |
.globl tailcall_from_swifterror @ -- Begin function tailcall_from_swifterror | |
.p2align 2 | |
.type tailcall_from_swifterror,%function | |
.code 32 @ @tailcall_from_swifterror | |
tailcall_from_swifterror: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r4, lr} | |
push {r4, lr} | |
mov r0, #0 | |
mov r4, r8 | |
bl acallee | |
mov r8, r4 | |
pop {r4, pc} | |
.Lfunc_end15: | |
.size tailcall_from_swifterror, .Lfunc_end15-tailcall_from_swifterror | |
.fnend | |
@ -- End function | |
.globl testAssign @ -- Begin function testAssign | |
.p2align 2 | |
.type testAssign,%function | |
.code 32 @ @testAssign | |
testAssign: | |
.fnstart | |
@ BB#0: @ %entry | |
.save {r8, lr} | |
push {r8, lr} | |
.pad #8 | |
sub sp, sp, #8 | |
mov r8, #0 | |
bl foo2 | |
mov r0, r8 | |
add sp, sp, #8 | |
pop {r8, pc} | |
.Lfunc_end16: | |
.size testAssign, .Lfunc_end16-testAssign | |
.fnend | |
@ -- End function | |
.section ".note.GNU-stack","",%progbits |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment