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 -x86-asm-syntax=intel -filetype=obj \ | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
(...skipping 12 matching lines...) Expand all Loading... |
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 -x86-asm-syntax=intel -filetype=obj \ | 28 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -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 | 32 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s |
33 ; TODO(kschimpf) Find out why lc2i is needed. | |
34 ; RUN: %lc2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s | |
35 | 33 |
36 declare i8* @llvm.nacl.read.tp() | 34 declare i8* @llvm.nacl.read.tp() |
37 declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) | 35 declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) |
38 declare void @llvm.memmove.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) | 36 declare void @llvm.memmove.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) |
39 declare void @llvm.memset.p0i8.i32(i8*, i8, i32, i32, i1) | 37 declare void @llvm.memset.p0i8.i32(i8*, i8, i32, i32, i1) |
40 declare void @llvm.nacl.longjmp(i8*, i32) | 38 declare void @llvm.nacl.longjmp(i8*, i32) |
41 declare i32 @llvm.nacl.setjmp(i8*) | 39 declare i32 @llvm.nacl.setjmp(i8*) |
42 declare float @llvm.sqrt.f32(float) | 40 declare float @llvm.sqrt.f32(float) |
43 declare double @llvm.sqrt.f64(double) | 41 declare double @llvm.sqrt.f64(double) |
44 declare void @llvm.trap() | 42 declare void @llvm.trap() |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 ret void | 516 ret void |
519 } | 517 } |
520 ; CHECK-LABEL: test_stacksave_multiple | 518 ; CHECK-LABEL: test_stacksave_multiple |
521 ; At least 3 copies of esp, but probably more from having to do the allocas. | 519 ; At least 3 copies of esp, but probably more from having to do the allocas. |
522 ; CHECK: mov {{.*}}, esp | 520 ; CHECK: mov {{.*}}, esp |
523 ; CHECK: mov {{.*}}, esp | 521 ; CHECK: mov {{.*}}, esp |
524 ; CHECK: mov {{.*}}, esp | 522 ; CHECK: mov {{.*}}, esp |
525 ; CHECK: mov esp, {{.*}} | 523 ; CHECK: mov esp, {{.*}} |
526 | 524 |
527 ; ERRORS-NOT: ICE translation error | 525 ; ERRORS-NOT: ICE translation error |
528 ; DUMP-NOT: SZ | |
OLD | NEW |