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 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer | 3 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer |
4 ; doesn't know how to symbolize non-section-local functions. | 4 ; doesn't know how to symbolize non-section-local functions. |
5 ; The newer LLVM 3.6 one does work, but watch out for other bugs. | 5 ; The newer LLVM 3.6 one does work, but watch out for other bugs. |
6 | 6 |
7 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 7 ; RUN: %p2i -i %s --args -O2 --verbose none \ |
8 ; RUN: | FileCheck --check-prefix=CALLTARGETS %s | 8 ; RUN: | FileCheck --check-prefix=CALLTARGETS %s |
9 ; RUN: %p2i -i %s --args -O2 --verbose none -sandbox \ | 9 ; RUN: %p2i -i %s --args -O2 --verbose none -sandbox \ |
10 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
(...skipping 11 matching lines...) Expand all Loading... |
22 ; RUN: | FileCheck --check-prefix=CHECKO2REM %s | 22 ; RUN: | FileCheck --check-prefix=CHECKO2REM %s |
23 | 23 |
24 ; Do O2 runs without -sandbox to make sure llvm.nacl.read.tp gets | 24 ; Do O2 runs without -sandbox to make sure llvm.nacl.read.tp gets |
25 ; lowered to __nacl_read_tp instead of gs:[0x0]. | 25 ; lowered to __nacl_read_tp instead of gs:[0x0]. |
26 ; We also know that because it's O2, it'll have the O2REM optimizations. | 26 ; We also know that because it's O2, it'll have the O2REM optimizations. |
27 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 27 ; RUN: %p2i -i %s --args -O2 --verbose none \ |
28 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 28 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
29 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ | 29 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ |
30 ; RUN: | FileCheck --check-prefix=CHECKO2UNSANDBOXEDREM %s | 30 ; RUN: | FileCheck --check-prefix=CHECKO2UNSANDBOXEDREM %s |
31 | 31 |
32 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s | |
33 | |
34 declare i8* @llvm.nacl.read.tp() | 32 declare i8* @llvm.nacl.read.tp() |
35 declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) | 33 declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) |
36 declare void @llvm.memmove.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) | 34 declare void @llvm.memmove.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) |
37 declare void @llvm.memset.p0i8.i32(i8*, i8, i32, i32, i1) | 35 declare void @llvm.memset.p0i8.i32(i8*, i8, i32, i32, i1) |
38 declare void @llvm.nacl.longjmp(i8*, i32) | 36 declare void @llvm.nacl.longjmp(i8*, i32) |
39 declare i32 @llvm.nacl.setjmp(i8*) | 37 declare i32 @llvm.nacl.setjmp(i8*) |
40 declare float @llvm.sqrt.f32(float) | 38 declare float @llvm.sqrt.f32(float) |
41 declare double @llvm.sqrt.f64(double) | 39 declare double @llvm.sqrt.f64(double) |
42 declare void @llvm.trap() | 40 declare void @llvm.trap() |
43 declare i16 @llvm.bswap.i16(i16) | 41 declare i16 @llvm.bswap.i16(i16) |
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 | 517 |
520 call void @llvm.stackrestore(i8* %sp1) | 518 call void @llvm.stackrestore(i8* %sp1) |
521 ret void | 519 ret void |
522 } | 520 } |
523 ; CHECK-LABEL: test_stacksave_multiple | 521 ; CHECK-LABEL: test_stacksave_multiple |
524 ; At least 3 copies of esp, but probably more from having to do the allocas. | 522 ; At least 3 copies of esp, but probably more from having to do the allocas. |
525 ; CHECK: mov {{.*}}, esp | 523 ; CHECK: mov {{.*}}, esp |
526 ; CHECK: mov {{.*}}, esp | 524 ; CHECK: mov {{.*}}, esp |
527 ; CHECK: mov {{.*}}, esp | 525 ; CHECK: mov {{.*}}, esp |
528 ; CHECK: mov esp, {{.*}} | 526 ; CHECK: mov esp, {{.*}} |
529 | |
530 ; ERRORS-NOT: ICE translation error | |
OLD | NEW |