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

Side by Side Diff: tests_lit/llvm2ice_tests/int-arg.ll

Issue 1187513006: ARM: Assign "actuals" at call site to the appropriate GPR/stack slot. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: tpypo Created 5 years, 6 months 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
OLDNEW
1 ; This file checks that Subzero generates code in accordance with the 1 ; This file checks that Subzero generates code in accordance with the
2 ; calling convention for integers. 2 ; calling convention for integers.
3 3
4 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ 4 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \
5 ; RUN: --target x8632 -i %s --args -O2 \ 5 ; RUN: --target x8632 -i %s --args -O2 \
6 ; RUN: | %if --need=target_X8632 --command FileCheck %s 6 ; RUN: | %if --need=target_X8632 --command FileCheck %s
7 7
8 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) 8 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented)
9 ; once enough infrastructure is in. Also, switch to --filetype=obj 9 ; once enough infrastructure is in. Also, switch to --filetype=obj
10 ; when possible. 10 ; when possible.
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } 228 }
229 ; CHECK-LABEL: test_returning32_even_arg4 229 ; CHECK-LABEL: test_returning32_even_arg4
230 ; CHECK-NEXT: mov {{.*}} [esp+0x18] 230 ; CHECK-NEXT: mov {{.*}} [esp+0x18]
231 ; CHECK-NEXT: ret 231 ; CHECK-NEXT: ret
232 ; ARM32-LABEL: test_returning32_even_arg4 232 ; ARM32-LABEL: test_returning32_even_arg4
233 ; ARM32-NEXT: ldr r0, [sp, #8] 233 ; ARM32-NEXT: ldr r0, [sp, #8]
234 ; ARM32-NEXT: bx lr 234 ; ARM32-NEXT: bx lr
235 235
236 ; Test interleaving float/double and integer (different register streams on ARM) . 236 ; Test interleaving float/double and integer (different register streams on ARM) .
237 ; TODO(jvoung): Test once the S/D/Q regs are modeled. 237 ; TODO(jvoung): Test once the S/D/Q regs are modeled.
238
239 ; Test that integers are passed correctly as arguments to a function.
240
241 declare void @IntArgs(i32, i32, i32, i32, i32, i32)
242
243 declare void @killRegisters()
244
245 define void @test_passing_integers(i32 %arg0, i32 %arg1, i32 %arg2, i32 %arg3, i 32 %arg4, i32 %arg5, i32 %arg6) {
246 call void @killRegisters()
247 call void @IntArgs(i32 %arg6, i32 %arg5, i32 %arg4, i32 %arg3, i32 %arg2, i32 %arg1)
248 ret void
249 }
250
251 ; CHECK-LABEL: test_passing_integers
252 ; CHECK-DAG: mov [[REG1:e.*]],DWORD PTR [esp+0x24]
253 ; CHECK-DAG: mov [[REG2:e.*]],DWORD PTR [esp+0x28]
254 ; CHECK-DAG: mov [[REG3:e.*]],DWORD PTR [esp+0x2c]
255 ; CHECK-DAG: mov [[REG4:e.*]],DWORD PTR [esp+0x30]
256 ; CHECK: mov DWORD PTR [esp]
257 ; CHECK: mov DWORD PTR [esp+0x4]
258 ; CHECK-DAG: mov DWORD PTR [esp+0x8],[[REG4]]
259 ; CHECK-DAG: mov DWORD PTR [esp+0xc],[[REG3]]
260 ; CHECK-DAG: mov DWORD PTR [esp+0x10],[[REG2]]
261 ; CHECK-DAG: mov DWORD PTR [esp+0x14],[[REG1]]
262 ; CHECK: call
263
264 ; ARM32-LABEL: test_passing_integers
265 ; ARM32-DAG: mov [[REG1:.*]], r1
266 ; ARM32-DAG: mov [[REG2:.*]], r2
267 ; ARM32-DAG: mov [[REG3:.*]], r3
268 ; ARM32: str [[REG2]], [sp]
269 ; ARM32: str [[REG1]], [sp, #4]
270 ; ARM32-DAG: mov r0
271 ; ARM32-DAG: mov r1
272 ; ARM32-DAG: mov r2
273 ; ARM32-DAG: mov r3, [[REG3]]
274 ; ARM32: bl
OLDNEW
« src/IceInstARM32.cpp ('K') | « tests_lit/llvm2ice_tests/globalinit.pnacl.ll ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698