| OLD | NEW |
| 1 ; This is a basic test of the alloca instruction and a call. | 1 ; This is a basic test of the alloca instruction and a call. |
| 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 -allow-externally-defined-symbols \ | 4 ; RUN: --target x8632 -i %s --args -O2 -allow-externally-defined-symbols \ |
| 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| 6 | 6 |
| 7 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ | 7 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ |
| 8 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target \ | 8 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target \ |
| 9 ; RUN: mips32 -i %s --args -O2 -allow-externally-defined-symbols \ | 9 ; RUN: mips32 -i %s --args -O2 -allow-externally-defined-symbols \ |
| 10 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ | 10 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 ; CHECK-NEXT: lea eax,[esp+0x20] | 36 ; CHECK-NEXT: lea eax,[esp+0x20] |
| 37 ; CHECK-NEXT: mov DWORD PTR [esp+0x10],eax | 37 ; CHECK-NEXT: mov DWORD PTR [esp+0x10],eax |
| 38 ; CHECK-NEXT: call | 38 ; CHECK-NEXT: call |
| 39 ; CHECK-NEXT: add esp,0x4c | 39 ; CHECK-NEXT: add esp,0x4c |
| 40 ; CHECK-NEXT: ret | 40 ; CHECK-NEXT: ret |
| 41 ; MIPS32-LABEL: caller1 | 41 ; MIPS32-LABEL: caller1 |
| 42 ; MIPS32: addiu sp,sp,{{.*}} | 42 ; MIPS32: addiu sp,sp,{{.*}} |
| 43 ; MIPS32: sw ra,{{.*}}(sp) | 43 ; MIPS32: sw ra,{{.*}}(sp) |
| 44 ; MIPS32: move v0,a0 | 44 ; MIPS32: move v0,a0 |
| 45 ; MIPS32: sw v0,{{.*}}(sp) | 45 ; MIPS32: sw v0,{{.*}}(sp) |
| 46 ; MIPS32: » addiu» v0,sp,16 | 46 ; MIPS32: » addiu» v0,sp,32 |
| 47 ; MIPS32: sw v0,{{.*}}(sp) | 47 ; MIPS32: sw v0,{{.*}}(sp) |
| 48 ; MIPS32: » addiu» a1,sp,16 | 48 ; MIPS32: » addiu» a1,sp,32 |
| 49 ; MIPS32: » addiu» a2,sp,16 | 49 ; MIPS32: » addiu» a2,sp,32 |
| 50 ; MIPS32: » addiu» a3,sp,16 | 50 ; MIPS32: » addiu» a3,sp,32 |
| 51 ; MIPS32: jal | 51 ; MIPS32: jal |
| 52 ; MIPS32: nop | 52 ; MIPS32: nop |
| 53 ; MIPS32: lw ra,{{.*}}(sp) | 53 ; MIPS32: lw ra,{{.*}}(sp) |
| 54 ; MIPS32: addiu sp,sp,{{.*}} | 54 ; MIPS32: addiu sp,sp,{{.*}} |
| 55 ; MIPS32: jr ra | 55 ; MIPS32: jr ra |
| 56 | 56 |
| 57 ; Test that alloca base addresses get passed correctly to functions. | 57 ; Test that alloca base addresses get passed correctly to functions. |
| 58 define internal void @caller2(i32 %arg) { | 58 define internal void @caller2(i32 %arg) { |
| 59 entry: | 59 entry: |
| 60 %a1 = alloca i8, i32 32, align 4 | 60 %a1 = alloca i8, i32 32, align 4 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 84 ; CHECK-NEXT: call | 84 ; CHECK-NEXT: call |
| 85 ; CHECK-NEXT: add esp,0x6c | 85 ; CHECK-NEXT: add esp,0x6c |
| 86 ; CHECK-NEXT: ret | 86 ; CHECK-NEXT: ret |
| 87 ; MIPS32-LABEL: caller2 | 87 ; MIPS32-LABEL: caller2 |
| 88 ; MIPS32: addiu sp,sp,{{.*}} | 88 ; MIPS32: addiu sp,sp,{{.*}} |
| 89 ; MIPS32: sw ra,{{.*}}(sp) | 89 ; MIPS32: sw ra,{{.*}}(sp) |
| 90 ; MIPS32: move v0,a0 | 90 ; MIPS32: move v0,a0 |
| 91 ; MIPS32: sw v0,{{.*}}(sp) | 91 ; MIPS32: sw v0,{{.*}}(sp) |
| 92 ; MIPS32: move v0,a0 | 92 ; MIPS32: move v0,a0 |
| 93 ; MIPS32: sw v0,{{.*}}(sp) | 93 ; MIPS32: sw v0,{{.*}}(sp) |
| 94 ; MIPS32: » addiu» v0,sp,48 | 94 ; MIPS32: » addiu» v0,sp,64 |
| 95 ; MIPS32: sw v0,{{.*}}(sp) | 95 ; MIPS32: sw v0,{{.*}}(sp) |
| 96 ; MIPS32: » addiu» a1,sp,16 | 96 ; MIPS32: » addiu» a1,sp,32 |
| 97 ; MIPS32: » addiu» a2,sp,48 | 97 ; MIPS32: » addiu» a2,sp,64 |
| 98 ; MIPS32: » addiu» a3,sp,16 | 98 ; MIPS32: » addiu» a3,sp,32 |
| 99 ; MIPS32: jal | 99 ; MIPS32: jal |
| 100 ; MIPS32: nop | 100 ; MIPS32: nop |
| 101 ; MIPS32: lw ra,{{.*}}(sp) | 101 ; MIPS32: lw ra,{{.*}}(sp) |
| 102 ; MIPS32: addiu sp,sp,{{.*}} | 102 ; MIPS32: addiu sp,sp,{{.*}} |
| 103 ; MIPS32: jr ra | 103 ; MIPS32: jr ra |
| OLD | NEW |