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 |