| 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 --sandbox -i %s --args -O2 \ | 4 ; RUN: --target x8632 --sandbox -i %s --args -O2 \ |
| 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 --sandbox -i %s --args -Om1 \ | 8 ; RUN: --target x8632 --sandbox -i %s --args -Om1 \ |
| 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 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 %sp = call i8* @llvm.stacksave() | 651 %sp = call i8* @llvm.stacksave() |
| 652 call void @llvm.stackrestore(i8* %sp) | 652 call void @llvm.stackrestore(i8* %sp) |
| 653 ret void | 653 ret void |
| 654 } | 654 } |
| 655 ; CHECK-LABEL: test_stacksave_noalloca | 655 ; CHECK-LABEL: test_stacksave_noalloca |
| 656 ; CHECK: mov {{.*}},esp | 656 ; CHECK: mov {{.*}},esp |
| 657 ; CHECK: mov esp,{{.*}} | 657 ; CHECK: mov esp,{{.*}} |
| 658 ; ARM32-LABEL: test_stacksave_noalloca | 658 ; ARM32-LABEL: test_stacksave_noalloca |
| 659 ; ARM32: mov {{.*}}, sp | 659 ; ARM32: mov {{.*}}, sp |
| 660 ; ARM32: mov sp, {{.*}} | 660 ; ARM32: mov sp, {{.*}} |
| 661 ; MIPS32-LABEL: test_stacksave_noalloca |
| 662 ; MIPS32: sw sp,{{.*}} |
| 663 ; MIPS32: lw [[REG:.*]],0(sp) |
| 664 ; MIPS32: move sp,[[REG]] |
| 661 | 665 |
| 662 declare i32 @foo(i32 %x) | 666 declare i32 @foo(i32 %x) |
| 663 | 667 |
| 664 define internal void @test_stacksave_multiple(i32 %x) { | 668 define internal void @test_stacksave_multiple(i32 %x) { |
| 665 entry: | 669 entry: |
| 666 %x_4 = mul i32 %x, 4 | 670 %x_4 = mul i32 %x, 4 |
| 667 %sp1 = call i8* @llvm.stacksave() | 671 %sp1 = call i8* @llvm.stacksave() |
| 668 %tmp1 = alloca i8, i32 %x_4, align 4 | 672 %tmp1 = alloca i8, i32 %x_4, align 4 |
| 669 | 673 |
| 670 %sp2 = call i8* @llvm.stacksave() | 674 %sp2 = call i8* @llvm.stacksave() |
| (...skipping 24 matching lines...) Expand all Loading... |
| 695 ; CHECK: lea {{.*}},[esp+0x10] | 699 ; CHECK: lea {{.*}},[esp+0x10] |
| 696 ; CHECK: lea {{.*}},[esp+0x10] | 700 ; CHECK: lea {{.*}},[esp+0x10] |
| 697 ; CHECK: call | 701 ; CHECK: call |
| 698 ; CHECK: mov esp,{{.*}} | 702 ; CHECK: mov esp,{{.*}} |
| 699 ; CHECK: mov esp,ebp | 703 ; CHECK: mov esp,ebp |
| 700 ; ARM32-LABEL: test_stacksave_multiple | 704 ; ARM32-LABEL: test_stacksave_multiple |
| 701 ; ARM32: mov {{.*}}, sp | 705 ; ARM32: mov {{.*}}, sp |
| 702 ; ARM32: mov {{.*}}, sp | 706 ; ARM32: mov {{.*}}, sp |
| 703 ; ARM32: mov {{.*}}, sp | 707 ; ARM32: mov {{.*}}, sp |
| 704 ; ARM32: mov sp, {{.*}} | 708 ; ARM32: mov sp, {{.*}} |
| 709 ; MIPS32-LABEL: test_stacksave_multiple |
| 710 ; MIPS32: sw sp,[[MEMLOC:.*]] |
| 711 ; MIPS32: sw sp,{{.*}} |
| 712 ; MIPS32: sw sp,{{.*}} |
| 713 ; MIPS32: lw [[REG:.*]],[[MEMLOC]] |
| 714 ; MIPS32: move sp,[[REG]] |
| OLD | NEW |