| Index: tests_lit/assembler/arm32/sandboxing.ll
|
| diff --git a/tests_lit/assembler/arm32/sandboxing.ll b/tests_lit/assembler/arm32/sandboxing.ll
|
| index 44e39e3adb40640ff13b42a5137502f89dcfcf8d..3ff27cb9ce5135660c4ab153bfd35490544f1467 100644
|
| --- a/tests_lit/assembler/arm32/sandboxing.ll
|
| +++ b/tests_lit/assembler/arm32/sandboxing.ll
|
| @@ -19,19 +19,12 @@ define internal void @test_direct_call() {
|
| entry:
|
| call void @call_target()
|
| ; bundle aigned.
|
| -
|
| - call void @call_target()
|
| ret void
|
| }
|
|
|
| ; CHECK-LABEL:<test_direct_call>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| -; CHECK-NEXT: movw [[REG:r[0-9]]], {{.+}} call_target
|
| -; CHECK-NEXT: movt [[REG]], {{.+}} call_target
|
| -; CHECK-NEXT: bic [[REG]], [[REG]], {{.+}} ; 0xc000000f
|
| -; CHECK-NEXT: blx [[REG]]
|
| -; CHECK-NEXT: {{[0-9a-f]*}}0:
|
| +; CHECK: {{[0-9a-f]*}}c: {{.*}} bl {{.*}} call_target
|
|
|
| ; Same as above, but force bundle padding by adding three (branch) instruction
|
| ; before the tested call.
|
| @@ -44,22 +37,16 @@ entry:
|
| next1:
|
| br label %next2 ; add 1 inst.
|
| next2:
|
| - br label %next3 ; add 1 inst.
|
| -next3:
|
| call void @call_target()
|
| ret void
|
| }
|
| ; CHECK-LABEL:<test_direct_call_with_padding_1>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| -; CHECK-NEXT: b
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: b
|
| -; CHECK-NEXT: movw [[REG:r[0-9]]], {{.+}} call_target
|
| -; CHECK-NEXT: movt [[REG]], {{.+}} call_target
|
| ; CHECK-NEXT: nop
|
| -; CHECK-NEXT: bic [[REG]], [[REG]], {{.+}} ; 0xc000000f
|
| -; CHECK-NEXT: blx r0
|
| +; CHECK-NEXT: bl {{.*}} call_target
|
| ; CHECK-NEXT: {{[0-9a-f]*}}0:
|
|
|
| ; Same as above, but force bundle padding by adding two (branch) instruction
|
| @@ -71,23 +58,17 @@ entry:
|
|
|
| br label %next1 ; add 1 inst.
|
| next1:
|
| - br label %next2 ; add 1 inst.
|
| -next2:
|
| call void @call_target()
|
| ret void
|
| }
|
|
|
| ; CHECK-LABEL:<test_direct_call_with_padding_2>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| -; CHECK-NEXT: b
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| -; CHECK-NEXT: movw [[REG:r[0-9]]], {{.+}} call_target
|
| -; CHECK-NEXT: movt [[REG]], {{.+}} call_target
|
| ; CHECK-NEXT: nop
|
| ; CHECK-NEXT: nop
|
| -; CHECK-NEXT: bic [[REG]], [[REG]], {{.+}} ; 0xc000000f
|
| -; CHECK-NEXT: blx r0
|
| +; CHECK-NEXT: bl {{.*}} call_target
|
| ; CHECK-NEXT: {{[0-9a-f]*}}0:
|
|
|
| ; Same as above, but force bundle padding by adding single (branch) instruction
|
| @@ -97,23 +78,17 @@ entry:
|
| call void @call_target()
|
| ; bundle aigned.
|
|
|
| - br label %next ; add 1 inst.
|
| -next:
|
| call void @call_target()
|
| ret void
|
| }
|
|
|
| ; CHECK-LABEL:<test_direct_call_with_padding_3>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| -; CHECK-NEXT: b
|
| -; CHECK-NEXT: movw [[REG:r[0-9]]], {{.+}} call_target
|
| -; CHECK-NEXT: movt [[REG]], {{.+}} call_target
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: nop
|
| ; CHECK-NEXT: nop
|
| ; CHECK-NEXT: nop
|
| -; CHECK-NEXT: bic [[REG]], [[REG]], {{.+}} ; 0xc000000f
|
| -; CHECK-NEXT: blx r0
|
| +; CHECK-NEXT: bl {{.*}} call_target
|
| ; CHECK-NEXT: {{[0-9a-f]*}}0:
|
|
|
| ; An indirect call sequence uses the right mask and register-call sequence.
|
| @@ -131,7 +106,7 @@ next:
|
|
|
| ; CHECK-LABEL:<test_indirect_call>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: ldr
|
| ; CHECK-NEXT: bic [[REG:r[0-3]]], [[REG]], {{.*}} 0xc000000f
|
| @@ -151,7 +126,7 @@ entry:
|
|
|
| ; CHECK-LABEL: <test_indirect_call_with_padding_1>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: ldr
|
| ; CHECK-NEXT: nop
|
| ; CHECK-NEXT: bic [[REG:r[0-3]]], [[REG]], {{.*}} 0xc000000f
|
| @@ -178,7 +153,7 @@ next3:
|
|
|
| ; CHECK-LABEL: <test_indirect_call_with_padding_2>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: b
|
| @@ -206,7 +181,7 @@ next2:
|
| }
|
| ; CHECK-LABEL: <test_indirect_call_with_padding_3>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: ldr
|
| @@ -228,7 +203,7 @@ next:
|
| }
|
| ; CHECK-LABEL:<test_ret>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: add sp, sp
|
| ; CHECK-NEXT: bic sp, sp, {{.+}} ; 0xc0000000
|
| @@ -245,7 +220,7 @@ define internal void @test_ret_with_padding() {
|
|
|
| ; CHECK-LABEL:<test_ret_with_padding>:
|
| ; Search for bundle alignment of first call.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: add sp, sp
|
| ; CHECK-NEXT: bic sp, sp, {{.+}} ; 0xc0000000
|
| ; CHECK-NEXT: pop {lr}
|
| @@ -264,7 +239,7 @@ entry:
|
|
|
| ; CHECK-LABEL: test_store
|
| ; Search for call at end of bundle.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: mov [[REG:r[0-9]]], #0
|
| ; CHECK-NEXT: mov
|
| ; CHECK-NEXT: bic [[REG]], [[REG]], {{.+}} ; 0xc0000000
|
| @@ -283,7 +258,7 @@ next:
|
| }
|
| ; CHECK-LABEL: test_store_with_padding
|
| ; Search for call at end of bundle.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: mov [[REG:r[0-9]]], #0
|
| ; CHECK-NEXT: mov
|
| @@ -303,7 +278,7 @@ entry:
|
|
|
| ; CHECK-LABEL: test_load
|
| ; Search for call at end of bundle.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: mov [[REG:r[0-9]]], #0
|
| ; CHECK-NEXT: bic [[REG]], [[REG]], {{.+}} ; 0xc0000000
|
| ; CHECK-NEXT: ldr r{{.+}}[[REG]]
|
| @@ -323,7 +298,7 @@ next2:
|
|
|
| ; CHECK-LABEL: test_load_with_padding
|
| ; Search for call at end of bundle.
|
| -; CHECK: {{[0-9a-f]*}}c: {{.+}} blx
|
| +; CHECK: {{[0-9a-f]*}}c: {{.+}} bl
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: b
|
| ; CHECK-NEXT: mov [[REG:r[0-9]]], #0
|
|
|