| OLD | NEW |
| 1 ; This is a basic test of the alloca instruction. | 1 ; This is a basic test of the alloca instruction. |
| 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_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 -allow-externally-defined-symbols \ | 8 ; RUN: --target x8632 -i %s --args -Om1 -allow-externally-defined-symbols \ |
| 9 ; RUN: | %if --need=target_X8632 --command FileCheck \ | 9 ; RUN: | %if --need=target_X8632 --command FileCheck \ |
| 10 ; RUN: --check-prefix CHECK-OPTM1 %s | 10 ; RUN: --check-prefix CHECK-OPTM1 %s |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 ; CHECK-OPTM1: sub esp,0x1a0 | 58 ; CHECK-OPTM1: sub esp,0x1a0 |
| 59 ; CHECK-OPTM1: mov DWORD PTR [esp],eax | 59 ; CHECK-OPTM1: mov DWORD PTR [esp],eax |
| 60 ; CHECK-OPTM1: call {{.*}} R_{{.*}} f1 | 60 ; CHECK-OPTM1: call {{.*}} R_{{.*}} f1 |
| 61 | 61 |
| 62 ; ARM32-LABEL: fixed_416_align_16 | 62 ; ARM32-LABEL: fixed_416_align_16 |
| 63 ; ARM32-OPT2: sub sp, sp, #428 | 63 ; ARM32-OPT2: sub sp, sp, #428 |
| 64 ; ARM32-OPTM1: sub sp, sp, #416 | 64 ; ARM32-OPTM1: sub sp, sp, #416 |
| 65 ; ARM32: bl {{.*}} R_{{.*}} f1 | 65 ; ARM32: bl {{.*}} R_{{.*}} f1 |
| 66 | 66 |
| 67 ; MIPS32-LABEL: fixed_416_align_16 | 67 ; MIPS32-LABEL: fixed_416_align_16 |
| 68 ; MIPS32-OPT2: addiu sp,sp,-440 | 68 ; MIPS32-OPT2: addiu sp,sp,-448 |
| 69 ; MIPS32-OPT2: addiu a0,sp,16 | 69 ; MIPS32-OPT2: addiu a0,sp,16 |
| 70 ; MIPS32-OPTM1: addiu sp,sp,-448 | 70 ; MIPS32-OPTM1: addiu sp,sp,-448 |
| 71 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 | 71 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 |
| 72 ; MIPS32-OPTM1: sw [[REG]],{{.*}} | 72 ; MIPS32-OPTM1: sw [[REG]],{{.*}} |
| 73 ; MIPS32-OPTM1: lw a0,{{.*}} | 73 ; MIPS32-OPTM1: lw a0,{{.*}} |
| 74 ; MIPS32: jal {{.*}} R_{{.*}} f1 | 74 ; MIPS32: jal {{.*}} R_{{.*}} f1 |
| 75 | 75 |
| 76 define internal void @fixed_416_align_32(i32 %n) { | 76 define internal void @fixed_416_align_32(i32 %n) { |
| 77 entry: | 77 entry: |
| 78 %array = alloca i8, i32 400, align 32 | 78 %array = alloca i8, i32 400, align 32 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 89 ; CHECK: mov DWORD PTR [esp],eax | 89 ; CHECK: mov DWORD PTR [esp],eax |
| 90 ; CHECK: call {{.*}} R_{{.*}} f1 | 90 ; CHECK: call {{.*}} R_{{.*}} f1 |
| 91 | 91 |
| 92 ; ARM32-LABEL: fixed_416_align_32 | 92 ; ARM32-LABEL: fixed_416_align_32 |
| 93 ; ARM32-OPT2: sub sp, sp, #424 | 93 ; ARM32-OPT2: sub sp, sp, #424 |
| 94 ; ARM32-OPTM1: sub sp, sp, #416 | 94 ; ARM32-OPTM1: sub sp, sp, #416 |
| 95 ; ARM32: bic sp, sp, #31 | 95 ; ARM32: bic sp, sp, #31 |
| 96 ; ARM32: bl {{.*}} R_{{.*}} f1 | 96 ; ARM32: bl {{.*}} R_{{.*}} f1 |
| 97 | 97 |
| 98 ; MIPS32-LABEL: fixed_416_align_32 | 98 ; MIPS32-LABEL: fixed_416_align_32 |
| 99 ; MIPS32-OPT2: addiu sp,sp,-440 | 99 ; MIPS32-OPT2: addiu sp,sp,-448 |
| 100 ; MIPS32-OPT2: addiu a0,sp,16 | 100 ; MIPS32-OPT2: addiu a0,sp,16 |
| 101 ; MIPS32-OPTM1: addiu sp,sp,-448 | 101 ; MIPS32-OPTM1: addiu sp,sp,-448 |
| 102 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 | 102 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 |
| 103 ; MIPS32-OPTM1: sw [[REG]],{{.*}} | 103 ; MIPS32-OPTM1: sw [[REG]],{{.*}} |
| 104 ; MIPS32-OPTM1: lw a0,{{.*}} | 104 ; MIPS32-OPTM1: lw a0,{{.*}} |
| 105 ; MIPS32: jal {{.*}} R_{{.*}} f1 | 105 ; MIPS32: jal {{.*}} R_{{.*}} f1 |
| 106 | 106 |
| 107 ; Show that the amount to allocate will be rounded up. | 107 ; Show that the amount to allocate will be rounded up. |
| 108 define internal void @fixed_351_align_16(i32 %n) { | 108 define internal void @fixed_351_align_16(i32 %n) { |
| 109 entry: | 109 entry: |
| (...skipping 13 matching lines...) Expand all Loading... |
| 123 ; CHECK-OPTM1: sub esp,0x160 | 123 ; CHECK-OPTM1: sub esp,0x160 |
| 124 ; CHECK-OPTM1: mov DWORD PTR [esp],eax | 124 ; CHECK-OPTM1: mov DWORD PTR [esp],eax |
| 125 ; CHECK-OPTM1: call {{.*}} R_{{.*}} f1 | 125 ; CHECK-OPTM1: call {{.*}} R_{{.*}} f1 |
| 126 | 126 |
| 127 ; ARM32-LABEL: fixed_351_align_16 | 127 ; ARM32-LABEL: fixed_351_align_16 |
| 128 ; ARM32-OPT2: sub sp, sp, #364 | 128 ; ARM32-OPT2: sub sp, sp, #364 |
| 129 ; ARM32-OPTM1: sub sp, sp, #352 | 129 ; ARM32-OPTM1: sub sp, sp, #352 |
| 130 ; ARM32: bl {{.*}} R_{{.*}} f1 | 130 ; ARM32: bl {{.*}} R_{{.*}} f1 |
| 131 | 131 |
| 132 ; MIPS32-LABEL: fixed_351_align_16 | 132 ; MIPS32-LABEL: fixed_351_align_16 |
| 133 ; MIPS32-OPT2: addiu sp,sp,-376 | 133 ; MIPS32-OPT2: addiu sp,sp,-384 |
| 134 ; MIPS32-OPT2: addiu a0,sp,16 | 134 ; MIPS32-OPT2: addiu a0,sp,16 |
| 135 ; MIPS32-OPTM1: addiu sp,sp,-384 | 135 ; MIPS32-OPTM1: addiu sp,sp,-384 |
| 136 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 | 136 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 |
| 137 ; MIPS32-OPTM1: sw [[REG]],{{.*}} | 137 ; MIPS32-OPTM1: sw [[REG]],{{.*}} |
| 138 ; MIPS32-OPTM1: lw a0,{{.*}} | 138 ; MIPS32-OPTM1: lw a0,{{.*}} |
| 139 ; MIPS32: jal {{.*}} R_{{.*}} f1 | 139 ; MIPS32: jal {{.*}} R_{{.*}} f1 |
| 140 | 140 |
| 141 define internal void @fixed_351_align_32(i32 %n) { | 141 define internal void @fixed_351_align_32(i32 %n) { |
| 142 entry: | 142 entry: |
| 143 %array = alloca i8, i32 351, align 32 | 143 %array = alloca i8, i32 351, align 32 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 154 ; CHECK: mov DWORD PTR [esp],eax | 154 ; CHECK: mov DWORD PTR [esp],eax |
| 155 ; CHECK: call {{.*}} R_{{.*}} f1 | 155 ; CHECK: call {{.*}} R_{{.*}} f1 |
| 156 | 156 |
| 157 ; ARM32-LABEL: fixed_351_align_32 | 157 ; ARM32-LABEL: fixed_351_align_32 |
| 158 ; ARM32-OPT2: sub sp, sp, #360 | 158 ; ARM32-OPT2: sub sp, sp, #360 |
| 159 ; ARM32-OPTM1: sub sp, sp, #352 | 159 ; ARM32-OPTM1: sub sp, sp, #352 |
| 160 ; ARM32: bic sp, sp, #31 | 160 ; ARM32: bic sp, sp, #31 |
| 161 ; ARM32: bl {{.*}} R_{{.*}} f1 | 161 ; ARM32: bl {{.*}} R_{{.*}} f1 |
| 162 | 162 |
| 163 ; MIPS32-LABEL: fixed_351_align_32 | 163 ; MIPS32-LABEL: fixed_351_align_32 |
| 164 ; MIPS32-OPT2: addiu sp,sp,-376 | 164 ; MIPS32-OPT2: addiu sp,sp,-384 |
| 165 ; MIPS32-OPT2: addiu a0,sp,16 | 165 ; MIPS32-OPT2: addiu a0,sp,16 |
| 166 ; MIPS32-OPTM1: addiu sp,sp,-384 | 166 ; MIPS32-OPTM1: addiu sp,sp,-384 |
| 167 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 | 167 ; MIPS32-OPTM1: addiu [[REG:.*]],sp,16 |
| 168 ; MIPS32-OPTM1: sw [[REG]],{{.*}} | 168 ; MIPS32-OPTM1: sw [[REG]],{{.*}} |
| 169 ; MIPS32-OPTM1: lw a0,{{.*}} | 169 ; MIPS32-OPTM1: lw a0,{{.*}} |
| 170 ; MIPS32: jal {{.*}} R_{{.*}} f1 | 170 ; MIPS32: jal {{.*}} R_{{.*}} f1 |
| 171 | 171 |
| 172 declare void @f1(i32 %ignored) | 172 declare void @f1(i32 %ignored) |
| 173 | 173 |
| 174 declare void @f2(i32 %ignored) | 174 declare void @f2(i32 %ignored) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 190 ; CHECK: mov DWORD PTR [esp],eax | 190 ; CHECK: mov DWORD PTR [esp],eax |
| 191 ; CHECK: call {{.*}} R_{{.*}} f2 | 191 ; CHECK: call {{.*}} R_{{.*}} f2 |
| 192 | 192 |
| 193 ; ARM32-LABEL: variable_n_align_16 | 193 ; ARM32-LABEL: variable_n_align_16 |
| 194 ; ARM32: add r0, r0, #15 | 194 ; ARM32: add r0, r0, #15 |
| 195 ; ARM32: bic r0, r0, #15 | 195 ; ARM32: bic r0, r0, #15 |
| 196 ; ARM32: sub sp, sp, r0 | 196 ; ARM32: sub sp, sp, r0 |
| 197 ; ARM32: bl {{.*}} R_{{.*}} f2 | 197 ; ARM32: bl {{.*}} R_{{.*}} f2 |
| 198 | 198 |
| 199 ; MIPS32-LABEL: variable_n_align_16 | 199 ; MIPS32-LABEL: variable_n_align_16 |
| 200 ; MIPS32: addiu»[[REG:.*]],{{.*}},7 | 200 ; MIPS32: addiu»[[REG:.*]],{{.*}},15 |
| 201 ; MIPS32: li» [[REG1:.*]],-8 | 201 ; MIPS32: li» [[REG1:.*]],-16 |
| 202 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] | 202 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] |
| 203 ; MIPS32: subu [[REG3:.*]],sp,[[REG2:.*]] | 203 ; MIPS32: subu [[REG3:.*]],sp,[[REG2:.*]] |
| 204 ; MIPS32: li [[REG4:.*]],-16 | 204 ; MIPS32: li [[REG4:.*]],-16 |
| 205 ; MIPS32: and {{.*}},[[REG3]],[[REG4]] | 205 ; MIPS32: and {{.*}},[[REG3]],[[REG4]] |
| 206 ; MIPS32: addiu sp,sp,-16 | 206 ; MIPS32: addiu sp,sp,-16 |
| 207 ; MIPS32: jal {{.*}} R_{{.*}} f2 | 207 ; MIPS32: jal {{.*}} R_{{.*}} f2 |
| 208 ; MIPS32: addiu sp,sp,16 | 208 ; MIPS32: addiu sp,sp,16 |
| 209 | 209 |
| 210 define internal void @variable_n_align_32(i32 %n) { | 210 define internal void @variable_n_align_32(i32 %n) { |
| 211 entry: | 211 entry: |
| (...skipping 23 matching lines...) Expand all Loading... |
| 235 ; ARM32: mov fp, sp | 235 ; ARM32: mov fp, sp |
| 236 ; ARM32: bic sp, sp, #31 | 236 ; ARM32: bic sp, sp, #31 |
| 237 ; ARM32: add r0, r0, #31 | 237 ; ARM32: add r0, r0, #31 |
| 238 ; ARM32: bic r0, r0, #31 | 238 ; ARM32: bic r0, r0, #31 |
| 239 ; ARM32: sub sp, sp, r0 | 239 ; ARM32: sub sp, sp, r0 |
| 240 ; ARM32: bl {{.*}} R_{{.*}} f2 | 240 ; ARM32: bl {{.*}} R_{{.*}} f2 |
| 241 ; ARM32: mov sp, fp | 241 ; ARM32: mov sp, fp |
| 242 ; ARM32: pop {fp, lr} | 242 ; ARM32: pop {fp, lr} |
| 243 | 243 |
| 244 ; MIPS32-LABEL: variable_n_align_32 | 244 ; MIPS32-LABEL: variable_n_align_32 |
| 245 ; MIPS32: addiu»[[REG:.*]],{{.*}},7 | 245 ; MIPS32: addiu»[[REG:.*]],{{.*}},15 |
| 246 ; MIPS32: li » [[REG1:.*]],-8 | 246 ; MIPS32: li » [[REG1:.*]],-16 |
| 247 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] | 247 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] |
| 248 ; MIPS32: subu [[REG3:.*]],sp,[[REG2]] | 248 ; MIPS32: subu [[REG3:.*]],sp,[[REG2]] |
| 249 ; MIPS32: li [[REG4:.*]],-32 | 249 ; MIPS32: li [[REG4:.*]],-32 |
| 250 ; MIPS32: and {{.*}},[[REG3]],[[REG4]] | 250 ; MIPS32: and {{.*}},[[REG3]],[[REG4]] |
| 251 ; MIPS32: addiu sp,sp,-16 | 251 ; MIPS32: addiu sp,sp,-16 |
| 252 ; MIPS32: jal {{.*}} R_{{.*}} f2 | 252 ; MIPS32: jal {{.*}} R_{{.*}} f2 |
| 253 ; MIPS32: addiu sp,sp,16 | 253 ; MIPS32: addiu sp,sp,16 |
| 254 | 254 |
| 255 ; Test alloca with default (0) alignment. | 255 ; Test alloca with default (0) alignment. |
| 256 define internal void @align0(i32 %n) { | 256 define internal void @align0(i32 %n) { |
| 257 entry: | 257 entry: |
| 258 %array = alloca i8, i32 %n | 258 %array = alloca i8, i32 %n |
| 259 %__2 = ptrtoint i8* %array to i32 | 259 %__2 = ptrtoint i8* %array to i32 |
| 260 call void @f2(i32 %__2) | 260 call void @f2(i32 %__2) |
| 261 ret void | 261 ret void |
| 262 } | 262 } |
| 263 ; CHECK-LABEL: align0 | 263 ; CHECK-LABEL: align0 |
| 264 ; CHECK: add [[REG:.*]],0xf | 264 ; CHECK: add [[REG:.*]],0xf |
| 265 ; CHECK: and [[REG]],0xfffffff0 | 265 ; CHECK: and [[REG]],0xfffffff0 |
| 266 ; CHECK: sub esp,[[REG]] | 266 ; CHECK: sub esp,[[REG]] |
| 267 | 267 |
| 268 ; ARM32-LABEL: align0 | 268 ; ARM32-LABEL: align0 |
| 269 ; ARM32: add r0, r0, #15 | 269 ; ARM32: add r0, r0, #15 |
| 270 ; ARM32: bic r0, r0, #15 | 270 ; ARM32: bic r0, r0, #15 |
| 271 ; ARM32: sub sp, sp, r0 | 271 ; ARM32: sub sp, sp, r0 |
| 272 | 272 |
| 273 ; MIPS32-LABEL: align0 | 273 ; MIPS32-LABEL: align0 |
| 274 ; MIPS32: addiu»[[REG:.*]],{{.*}},7 | 274 ; MIPS32: addiu»[[REG:.*]],{{.*}},15 |
| 275 ; MIPS32: li» [[REG1:.*]],-8 | 275 ; MIPS32: li» [[REG1:.*]],-16 |
| 276 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] | 276 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] |
| 277 ; MIPS32: subu {{.*}},sp,[[REG2]] | 277 ; MIPS32: subu {{.*}},sp,[[REG2]] |
| 278 ; MIPS32: addiu sp,sp,-16 | 278 ; MIPS32: addiu sp,sp,-16 |
| 279 ; MIPS32: jal {{.*}} R_{{.*}} f2 | 279 ; MIPS32: jal {{.*}} R_{{.*}} f2 |
| 280 ; MIPS32: addiu sp,sp,16 | 280 ; MIPS32: addiu sp,sp,16 |
| 281 | 281 |
| 282 ; Test a large alignment where a mask might not fit in an immediate | 282 ; Test a large alignment where a mask might not fit in an immediate |
| 283 ; field of an instruction for some architectures. | 283 ; field of an instruction for some architectures. |
| 284 define internal void @align1MB(i32 %n) { | 284 define internal void @align1MB(i32 %n) { |
| 285 entry: | 285 entry: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 302 ; ARM32: and sp, sp, [[REG]] | 302 ; ARM32: and sp, sp, [[REG]] |
| 303 ; ARM32: movw [[REG2:.*]], #65535 ; 0xffff | 303 ; ARM32: movw [[REG2:.*]], #65535 ; 0xffff |
| 304 ; ARM32: movt [[REG2]], #15 | 304 ; ARM32: movt [[REG2]], #15 |
| 305 ; ARM32: add r0, r0, [[REG2]] | 305 ; ARM32: add r0, r0, [[REG2]] |
| 306 ; ARM32: movw [[REG3:.*]], #0 | 306 ; ARM32: movw [[REG3:.*]], #0 |
| 307 ; ARM32: movt [[REG3]], #65520 ; 0xfff0 | 307 ; ARM32: movt [[REG3]], #65520 ; 0xfff0 |
| 308 ; ARM32: and r0, r0, [[REG3]] | 308 ; ARM32: and r0, r0, [[REG3]] |
| 309 ; ARM32: sub sp, sp, r0 | 309 ; ARM32: sub sp, sp, r0 |
| 310 | 310 |
| 311 ; MIPS32-LABEL: align1MB | 311 ; MIPS32-LABEL: align1MB |
| 312 ; MIPS32: addiu»[[REG:.*]],{{.*}},7 | 312 ; MIPS32: addiu»[[REG:.*]],{{.*}},15 |
| 313 ; MIPS32: li» [[REG1:.*]],-8 | 313 ; MIPS32: li» [[REG1:.*]],-16 |
| 314 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] | 314 ; MIPS32: and [[REG2:.*]],[[REG]],[[REG1]] |
| 315 ; MIPS32: subu [[REG3:.*]],sp,[[REG2]] | 315 ; MIPS32: subu [[REG3:.*]],sp,[[REG2]] |
| 316 ; MIPS32: lui [[REG4:.*]],0xfff0 | 316 ; MIPS32: lui [[REG4:.*]],0xfff0 |
| 317 ; MIPS32: and {{.*}},[[REG3]],[[REG4]] | 317 ; MIPS32: and {{.*}},[[REG3]],[[REG4]] |
| 318 ; MIPS32: addiu sp,sp,-16 | 318 ; MIPS32: addiu sp,sp,-16 |
| 319 ; MIPS32: jal {{.*}} R_{{.*}} f2 | 319 ; MIPS32: jal {{.*}} R_{{.*}} f2 |
| 320 ; MIPS32: addiu sp,sp,16 | 320 ; MIPS32: addiu sp,sp,16 |
| 321 | 321 |
| 322 ; Test a large alignment where a mask might still fit in an immediate | 322 ; Test a large alignment where a mask might still fit in an immediate |
| 323 ; field of an instruction for some architectures. | 323 ; field of an instruction for some architectures. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 337 ; CHECK: sub esp,[[REG]] | 337 ; CHECK: sub esp,[[REG]] |
| 338 | 338 |
| 339 ; ARM32-LABEL: align512MB | 339 ; ARM32-LABEL: align512MB |
| 340 ; ARM32: and sp, sp, #-536870912 ; 0xe0000000 | 340 ; ARM32: and sp, sp, #-536870912 ; 0xe0000000 |
| 341 ; ARM32: mvn [[REG:.*]], #-536870912 ; 0xe0000000 | 341 ; ARM32: mvn [[REG:.*]], #-536870912 ; 0xe0000000 |
| 342 ; ARM32: add r0, r0, [[REG]] | 342 ; ARM32: add r0, r0, [[REG]] |
| 343 ; ARM32: and r0, r0, #-536870912 ; 0xe0000000 | 343 ; ARM32: and r0, r0, #-536870912 ; 0xe0000000 |
| 344 ; ARM32: sub sp, sp, r0 | 344 ; ARM32: sub sp, sp, r0 |
| 345 | 345 |
| 346 ; MIPS32-LABEL: align512MB | 346 ; MIPS32-LABEL: align512MB |
| 347 ; MIPS32: addiu»[[REG:.*]],{{.*}},7 | 347 ; MIPS32: addiu»[[REG:.*]],{{.*}},15 |
| 348 ; MIPS32: li» [[REG2:.*]],-8 | 348 ; MIPS32: li» [[REG2:.*]],-16 |
| 349 ; MIPS32: and [[REG3:.*]],[[REG]],[[REG2]] | 349 ; MIPS32: and [[REG3:.*]],[[REG]],[[REG2]] |
| 350 ; MIPS32: subu [[REG4:.*]],sp,[[REG3]] | 350 ; MIPS32: subu [[REG4:.*]],sp,[[REG3]] |
| 351 ; MIPS32: lui [[REG5:.*]],0xe000 | 351 ; MIPS32: lui [[REG5:.*]],0xe000 |
| 352 ; MIPS32: and {{.*}},[[REG4]],[[REG5]] | 352 ; MIPS32: and {{.*}},[[REG4]],[[REG5]] |
| 353 ; MIPS32: addiu sp,sp,-16 | 353 ; MIPS32: addiu sp,sp,-16 |
| 354 ; MIPS32: jal {{.*}} R_{{.*}} f2 | 354 ; MIPS32: jal {{.*}} R_{{.*}} f2 |
| 355 ; MIPS32: addiu sp,sp,16 | 355 ; MIPS32: addiu sp,sp,16 |
| 356 | 356 |
| 357 ; Test that a simple alloca sequence doesn't trigger a frame pointer. | 357 ; Test that a simple alloca sequence doesn't trigger a frame pointer. |
| 358 define internal void @fixed_no_frameptr(i32 %arg) { | 358 define internal void @fixed_no_frameptr(i32 %arg) { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 %p1 = bitcast i8* %a1 to i32* | 398 %p1 = bitcast i8* %a1 to i32* |
| 399 %p2 = bitcast i8* %a2 to i32* | 399 %p2 = bitcast i8* %a2 to i32* |
| 400 %p3 = bitcast i8* %a3 to i32* | 400 %p3 = bitcast i8* %a3 to i32* |
| 401 store i32 %arg, i32* %p1, align 1 | 401 store i32 %arg, i32* %p1, align 1 |
| 402 store i32 %arg, i32* %p2, align 1 | 402 store i32 %arg, i32* %p2, align 1 |
| 403 store i32 %arg, i32* %p3, align 1 | 403 store i32 %arg, i32* %p3, align 1 |
| 404 ret void | 404 ret void |
| 405 } | 405 } |
| 406 ; CHECK-LABEL: var_with_frameptr | 406 ; CHECK-LABEL: var_with_frameptr |
| 407 ; CHECK: mov ebp,esp | 407 ; CHECK: mov ebp,esp |
| OLD | NEW |