OLD | NEW |
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: %p2i -i %s --filetype=obj --disassemble --args -O2 \ | 4 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 | FileCheck %s |
5 ; RUN: | FileCheck %s | |
6 | 5 |
7 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) | 6 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) |
8 ; once enough infrastructure is in. Also, switch to --filetype=obj | 7 ; once enough infrastructure is in. Also, switch to --filetype=obj |
9 ; when possible. | 8 ; when possible. |
10 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=asm --assemble \ | 9 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=asm --assemble \ |
11 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ | 10 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ |
12 ; RUN: | %if --need=target_ARM32 --command FileCheck --check-prefix ARM32 %s | 11 ; RUN: | %if --need=target_ARM32 --command FileCheck --check-prefix ARM32 %s |
13 | 12 |
14 ; For x86-32, integer arguments use the stack. | 13 ; For x86-32, integer arguments use the stack. |
15 ; For ARM32, integer arguments can be r0-r3. i64 arguments occupy two | 14 ; For ARM32, integer arguments can be r0-r3. i64 arguments occupy two |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 ; CHECK-LABEL: test_returning32_even_arg4 | 233 ; CHECK-LABEL: test_returning32_even_arg4 |
235 ; CHECK-NEXT: mov {{.*}} [esp+0x18] | 234 ; CHECK-NEXT: mov {{.*}} [esp+0x18] |
236 ; CHECK-NEXT: ret | 235 ; CHECK-NEXT: ret |
237 ; ARM32-LABEL: test_returning32_even_arg4 | 236 ; ARM32-LABEL: test_returning32_even_arg4 |
238 ; TODO(jvoung): enable this once addProlog is done. | 237 ; TODO(jvoung): enable this once addProlog is done. |
239 ; TODOARM32-NEXT: ldr r0, [sp, #8] | 238 ; TODOARM32-NEXT: ldr r0, [sp, #8] |
240 ; ARM32-NEXT: bx lr | 239 ; ARM32-NEXT: bx lr |
241 | 240 |
242 ; Test interleaving float/double and integer (different register streams on ARM)
. | 241 ; Test interleaving float/double and integer (different register streams on ARM)
. |
243 ; TODO(jvoung): Test once the S/D/Q regs are modeled. | 242 ; TODO(jvoung): Test once the S/D/Q regs are modeled. |
OLD | NEW |