Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: tests_lit/assembler/arm32/sandboxing.ll

Issue 1481133002: Subzero. ARM32. Show FP lowering some love. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Handles comments; git pull; fixes lit tests. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/assembler/arm32/mov-const.ll ('k') | tests_lit/llvm2ice_tests/64bit.pnacl.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Tests basics and corner cases of arm32 sandboxing, using -Om1 in the hope that 1 ; Tests basics and corner cases of arm32 sandboxing, using -Om1 in the hope that
2 ; the output will remain stable. When packing bundles, we try to limit to a few 2 ; the output will remain stable. When packing bundles, we try to limit to a few
3 ; instructions with well known sizes and minimal use of registers and stack 3 ; instructions with well known sizes and minimal use of registers and stack
4 ; slots in the lowering sequence. 4 ; slots in the lowering sequence.
5 5
6 ; REQUIRES: allow_dump, target_ARM32 6 ; REQUIRES: allow_dump, target_ARM32
7 ; RUN: %p2i -i %s --sandbox --filetype=asm --target=arm32 --assemble \ 7 ; RUN: %p2i -i %s --sandbox --filetype=asm --target=arm32 --assemble \
8 ; RUN: --disassemble --args -Om1 -allow-externally-defined-symbols \ 8 ; RUN: --disassemble --args -Om1 -allow-externally-defined-symbols \
9 ; RUN: -ffunction-sections | FileCheck %s 9 ; RUN: -ffunction-sections | FileCheck %s
10 10
11 declare void @call_target() 11 declare void @call_target()
12 declare void @call_target1(i32 %arg) 12 declare void @call_target1(i32 %arg0)
13 declare void @call_target2(i32 %arg0, i32 %arg1)
14 declare void @call_target3(i32 %arg0, i32 %arg1, i32 %arg2)
13 @global_short = internal global [2 x i8] zeroinitializer 15 @global_short = internal global [2 x i8] zeroinitializer
14 16
15 ; A direct call sequence uses the right mask and register-call sequence. 17 ; A direct call sequence uses the right mask and register-call sequence.
16 define internal void @test_direct_call() { 18 define internal void @test_direct_call() {
17 entry: 19 entry:
18 call void @call_target() 20 call void @call_target()
19 ret void 21 ret void
20 } 22 }
21 ; CHECK-LABEL: test_direct_call 23 ; CHECK-LABEL: test_direct_call
22 ; CHECK: sub sp, 24 ; CHECK: sub sp,
(...skipping 30 matching lines...) Expand all
53 ; Bundle lock without padding. 55 ; Bundle lock without padding.
54 define internal void @bundle_lock_without_padding() { 56 define internal void @bundle_lock_without_padding() {
55 entry: 57 entry:
56 %addr_short = bitcast [2 x i8]* @global_short to i16* 58 %addr_short = bitcast [2 x i8]* @global_short to i16*
57 store i16 0, i16* %addr_short, align 1 59 store i16 0, i16* %addr_short, align 1
58 ret void 60 ret void
59 } 61 }
60 ; CHECK-LABEL: bundle_lock_without_padding 62 ; CHECK-LABEL: bundle_lock_without_padding
61 ; CHECK: 0: {{.*}} movw 63 ; CHECK: 0: {{.*}} movw
62 ; CHECK-NEXT: movt 64 ; CHECK-NEXT: movt
63 ; CHECK-NEXT: movw 65 ; CHECK-NEXT: mov
64 ; CHECK-NEXT: nop 66 ; CHECK-NEXT: nop
65 ; CHECK-NEXT: bic [[REG:r[0-9]+]], {{.*}} 0xc0000000 67 ; CHECK-NEXT: bic [[REG:r[0-9]+]], {{.*}} 0xc0000000
66 ; CHECK-NEXT: strh {{.*}}, {{[[]}}[[REG]] 68 ; CHECK-NEXT: strh {{.*}}, {{[[]}}[[REG]]
67 ; CHECK-NEXT: bic lr, lr, {{.*}} ; 0xc000000f 69 ; CHECK-NEXT: bic lr, lr, {{.*}} ; 0xc000000f
68 ; CHECK-NEXT: {{.*}} bx lr 70 ; CHECK-NEXT: {{.*}} bx lr
69 71
70 ; Bundle lock with padding. 72 ; Bundle lock with padding.
71 define internal void @bundle_lock_with_padding() { 73 define internal void @bundle_lock_with_padding() {
72 entry: 74 entry:
73 call void @call_target() 75 call void @call_target()
(...skipping 10 matching lines...) Expand all
84 ; CHECK: 48: {{.*}} pop 86 ; CHECK: 48: {{.*}} pop
85 ; CHECK-NEXT: nop 87 ; CHECK-NEXT: nop
86 ; CHECK-NEXT: bic lr, {{.*}} 0xc000000f 88 ; CHECK-NEXT: bic lr, {{.*}} 0xc000000f
87 ; CHECK-NEXT: {{.*}} bx lr 89 ; CHECK-NEXT: {{.*}} bx lr
88 90
89 ; Bundle lock align_to_end without any padding. 91 ; Bundle lock align_to_end without any padding.
90 define internal void @bundle_lock_align_to_end_padding_0() { 92 define internal void @bundle_lock_align_to_end_padding_0() {
91 entry: 93 entry:
92 call void @call_target() 94 call void @call_target()
93 ; bundle boundary 95 ; bundle boundary
94 store i16 0, i16* undef, align 1 96 call void @call_target3(i32 1, i32 2, i32 3)
95 call void @call_target()
96 ; bundle boundary 97 ; bundle boundary
97 ret void 98 ret void
98 } 99 }
99 ; CHECK-LABEL: bundle_lock_align_to_end_padding_0 100 ; CHECK-LABEL: bundle_lock_align_to_end_padding_0
100 ; CHECK: c: {{.*}} bl {{.*}} call_target 101 ; CHECK: c: {{.*}} bl {{.*}} call_target
101 ; CHECK-NEXT: movw 102 ; CHECK-NEXT: mov
102 ; CHECK-NEXT: movw 103 ; CHECK-NEXT: mov
103 ; CHECK-NEXT: bic [[REG:r[0-9]+]] 104 ; CHECK-NEXT: mov
104 ; CHECK-NEXT: strh {{.*}}, {{[[]}}[[REG]] 105 ; CHECK-NEXT: {{[0-9]+}}c: {{.*}} bl {{.*}} call_target3
105 ; CHECK: {{[0-9]+}}c: {{.*}} bl {{.*}} call_target
106 ; CHECK-NEXT: add sp 106 ; CHECK-NEXT: add sp
107 ; CHECK-NEXT: bic sp, {{.*}} 0xc0000000 107 ; CHECK-NEXT: bic sp, {{.*}} 0xc0000000
108 ; CHECK-NEXT: pop 108 ; CHECK-NEXT: pop
109 ; CHECK: {{[0-9]+}}0: {{.*}} bic lr, lr, {{.*}} 0xc000000f 109 ; CHECK: {{[0-9]+}}0: {{.*}} bic lr, lr, {{.*}} 0xc000000f
110 ; CHECK-NEXT: {{.*}} bx lr 110 ; CHECK-NEXT: {{.*}} bx lr
111 111
112 ; Bundle lock align_to_end with one bunch of padding. 112 ; Bundle lock align_to_end with one bunch of padding.
113 define internal void @bundle_lock_align_to_end_padding_1() { 113 define internal void @bundle_lock_align_to_end_padding_1() {
114 entry: 114 entry:
115 call void @call_target() 115 call void @call_target()
116 ; bundle boundary 116 ; bundle boundary
117 store i32 65536, i32* undef, align 1 117 call void @call_target2(i32 1, i32 2)
118 ; bundle boundary
119 call void @call_target()
120 ; bundle boundary 118 ; bundle boundary
121 ret void 119 ret void
122 } 120 }
123 ; CHECK-LABEL: bundle_lock_align_to_end_padding_1 121 ; CHECK-LABEL: bundle_lock_align_to_end_padding_1
124 ; CHECK: {{[0-9]*}}c: {{.*}} bl {{.*}} call_target 122 ; CHECK: {{[0-9]*}}c: {{.*}} bl {{.*}} call_target
125 ; CHECK-NEXT: movw [[BASE:r[0-9]+]] 123 ; CHECK-NEXT: mov
126 ; CHECK-NEXT: movw [[REG:r[0-9]+]], #0 124 ; CHECK-NEXT: mov
127 ; CHECK-NEXT: movt [[REG]], #1
128 ; CHECK-NEXT: nop 125 ; CHECK-NEXT: nop
129 ; CHECK-NEXT: bic [[BASE]], [[BASE]], {{.*}} 0xc0000000 126 ; CHECK-NEXT: bl {{.*}} call_target2
130 ; CHECK-NEXT: str [[REG]], {{[[]}}[[BASE]]
131 ; CHECK-NEXT: nop
132 ; CHECK-NEXT: bl {{.*}} call_target
133 ; CHECK: {{[0-9]+}}0: {{.*}} bic lr, lr, {{.*}} 0xc000000f 127 ; CHECK: {{[0-9]+}}0: {{.*}} bic lr, lr, {{.*}} 0xc000000f
134 ; CHECK-NEXT: {{.*}} bx lr 128 ; CHECK-NEXT: {{.*}} bx lr
135 129
136 ; Bundle lock align_to_end with two bunches of padding. 130 ; Bundle lock align_to_end with two bunches of padding.
137 define internal void @bundle_lock_align_to_end_padding_2(i32 %target) { 131 define internal void @bundle_lock_align_to_end_padding_2() {
138 entry: 132 entry:
139 call void @call_target1(i32 1) 133 call void @call_target2(i32 1, i32 2)
140 ; bundle boundary 134 ; bundle boundary
141 %__1 = inttoptr i32 %target to void (i32, i32, i32)*
142 call void %__1(i32 2, i32 3, i32 4)
143 ret void 135 ret void
144 } 136 }
145 ; CHECK-LABEL: bundle_lock_align_to_end_padding_2 137 ; CHECK-LABEL: bundle_lock_align_to_end_padding_2
146 ; CHECK: {{[0-9]+}}0: 138 ; CHECK: mov
139 ; CHECK-NEXT: mov
147 ; CHECK-NEXT: nop 140 ; CHECK-NEXT: nop
148 ; CHECK-NEXT: nop 141 ; CHECK-NEXT: nop
149 ; CHECK-NEXT: bl {{.*}} call_target 142 ; CHECK-NEXT: bl {{.*}} call_target2
150 ; CHECK: {{[0-9]+}}c: {{.*}} movw r2, #4
151 ; CHECK-NEXT: nop
152 ; CHECK-NEXT: nop
153 ; CHECK-NEXT: bic [[REG:r[0-9]+]], [[REG]], {{.*}} 0xc000000f
154 ; CHECK-NEXT: {{.*}} blx [[REG]]
OLDNEW
« no previous file with comments | « tests_lit/assembler/arm32/mov-const.ll ('k') | tests_lit/llvm2ice_tests/64bit.pnacl.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698