| OLD | NEW |
| 1 ; This tests the NaCl intrinsics not related to atomic operations. | 1 ; This tests the NaCl intrinsics not related to atomic operations. |
| 2 | 2 |
| 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 4 ; RUN: --target x8632 -i %s --args -O2 -sandbox \ | 4 ; RUN: --target x8632 -i %s --args -O2 -sandbox \ |
| 5 ; RUN: -allow-externally-defined-symbols \ | 5 ; RUN: -allow-externally-defined-symbols \ |
| 6 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 6 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 8 ; RUN: --target x8632 -i %s --args -Om1 -sandbox \ | 8 ; RUN: --target x8632 -i %s --args -Om1 -sandbox \ |
| 9 ; RUN: -allow-externally-defined-symbols \ | 9 ; RUN: -allow-externally-defined-symbols \ |
| 10 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 10 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 %__10 = bitcast i8* %tmp2 to i32* | 533 %__10 = bitcast i8* %tmp2 to i32* |
| 534 store i32 %x, i32* %__10, align 1 | 534 store i32 %x, i32* %__10, align 1 |
| 535 | 535 |
| 536 %__11 = bitcast i8* %tmp3 to i32* | 536 %__11 = bitcast i8* %tmp3 to i32* |
| 537 store i32 %x, i32* %__11, align 1 | 537 store i32 %x, i32* %__11, align 1 |
| 538 | 538 |
| 539 call void @llvm.stackrestore(i8* %sp1) | 539 call void @llvm.stackrestore(i8* %sp1) |
| 540 ret void | 540 ret void |
| 541 } | 541 } |
| 542 ; CHECK-LABEL: test_stacksave_multiple | 542 ; CHECK-LABEL: test_stacksave_multiple |
| 543 ; At least 3 copies of esp, but probably more from having to do the allocas. | 543 ; lea is used to copy from esp for the allocas. |
| 544 ; Otherwise, only one stacksave is live. |
| 545 ; CHECK: mov ebp,esp |
| 544 ; CHECK: mov {{.*}},esp | 546 ; CHECK: mov {{.*}},esp |
| 545 ; CHECK: mov {{.*}},esp | 547 ; CHECK: lea {{.*}},[esp+0x10] |
| 546 ; CHECK: mov {{.*}},esp | 548 ; CHECK: lea {{.*}},[esp+0x10] |
| 549 ; CHECK: call |
| 547 ; CHECK: mov esp,{{.*}} | 550 ; CHECK: mov esp,{{.*}} |
| 551 ; CHECK: mov esp,ebp |
| 548 ; ARM32-LABEL: test_stacksave_multiple | 552 ; ARM32-LABEL: test_stacksave_multiple |
| 549 ; ARM32: mov {{.*}}, sp | 553 ; ARM32: mov {{.*}}, sp |
| 550 ; ARM32: mov {{.*}}, sp | 554 ; ARM32: mov {{.*}}, sp |
| 551 ; ARM32: mov {{.*}}, sp | 555 ; ARM32: mov {{.*}}, sp |
| 552 ; ARM32: mov sp, {{.*}} | 556 ; ARM32: mov sp, {{.*}} |
| OLD | NEW |