| OLD | NEW |
| 1 ; Test of global initializers. | 1 ; Test of global initializers. |
| 2 | 2 |
| 3 ; Test -ias=0 to test the lea "hack" until we are fully confident in -ias=1 | 3 ; Test -ias=0 to test the lea "hack" until we are fully confident in -ias=1 |
| 4 ; RUN: %p2i -i %s --args --verbose none -ias=0 | FileCheck %s | 4 ; RUN: %p2i -i %s --args --verbose none -ias=0 | FileCheck %s |
| 5 | 5 |
| 6 ; Test -ias=1 and try to cross reference instructions w/ the symbol table. | 6 ; Test -ias=1 and try to cross reference instructions w/ the symbol table. |
| 7 ; RUN: %p2i -i %s --args --verbose none \ | 7 ; RUN: %p2i -i %s --args --verbose none \ |
| 8 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 8 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
| 9 ; RUN: | llvm-objdump -d -r --symbolize -x86-asm-syntax=intel - \ | 9 ; RUN: | llvm-objdump -d -r --symbolize -x86-asm-syntax=intel - \ |
| 10 ; RUN: | FileCheck --check-prefix=IAS %s | 10 ; RUN: | FileCheck --check-prefix=IAS %s |
| 11 ; RUN: %p2i -i %s --args --verbose none \ | 11 ; RUN: %p2i -i %s --args --verbose none \ |
| 12 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 12 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
| 13 ; RUN: | llvm-objdump -d -t --symbolize -x86-asm-syntax=intel - \ | 13 ; RUN: | llvm-objdump -d -t --symbolize -x86-asm-syntax=intel - \ |
| 14 ; RUN: | FileCheck --check-prefix=SYMTAB %s | 14 ; RUN: | FileCheck --check-prefix=SYMTAB %s |
| 15 | 15 |
| 16 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s | 16 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s |
| 17 | 17 |
| 18 @PrimitiveInit = internal global [4 x i8] c"\1B\00\00\00", align 4 | 18 @PrimitiveInit = internal global [4 x i8] c"\1B\00\00\00", align 4 |
| 19 ; CHECK: .type PrimitiveInit,@object | 19 ; CHECK: .type PrimitiveInit,@object |
| 20 ; CHECK-NEXT: .section .data,"aw",@progbits | 20 ; CHECK-NEXT: .section .data,"aw",@progbits |
| 21 ; CHECK-NEXT: .align 4 | 21 ; CHECK-NEXT: .align 4 |
| 22 ; CHECK-NEXT: PrimitiveInit: | 22 ; CHECK-NEXT: PrimitiveInit: |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 call void @use(i32 %expanded7) | 95 call void @use(i32 %expanded7) |
| 96 %expanded9 = ptrtoint [20 x i8]* @ArrayInit to i32 | 96 %expanded9 = ptrtoint [20 x i8]* @ArrayInit to i32 |
| 97 call void @use(i32 %expanded9) | 97 call void @use(i32 %expanded9) |
| 98 %expanded11 = ptrtoint [40 x i8]* @ArrayInitPartial to i32 | 98 %expanded11 = ptrtoint [40 x i8]* @ArrayInitPartial to i32 |
| 99 call void @use(i32 %expanded11) | 99 call void @use(i32 %expanded11) |
| 100 %expanded13 = ptrtoint [20 x i8]* @ArrayUninit to i32 | 100 %expanded13 = ptrtoint [20 x i8]* @ArrayUninit to i32 |
| 101 call void @use(i32 %expanded13) | 101 call void @use(i32 %expanded13) |
| 102 ret i32 0 | 102 ret i32 0 |
| 103 } | 103 } |
| 104 ; CHECK-LABEL: main | 104 ; CHECK-LABEL: main |
| 105 ; CHECK: .att_syntax | 105 ; CHECK: movl $PrimitiveInit, |
| 106 ; CHECK: leal PrimitiveInit, | 106 ; CHECK: movl $PrimitiveInitConst, |
| 107 ; CHECK: .intel_syntax | 107 ; CHECK: movl $PrimitiveInitStatic, |
| 108 ; CHECK: .att_syntax | 108 ; CHECK: movl $PrimitiveUninit, |
| 109 ; CHECK: leal PrimitiveInitConst, | 109 ; CHECK: movl $ArrayInit, |
| 110 ; CHECK: .intel_syntax | 110 ; CHECK: movl $ArrayInitPartial, |
| 111 ; CHECK: .att_syntax | 111 ; CHECK: movl $ArrayUninit, |
| 112 ; CHECK: leal PrimitiveInitStatic, | |
| 113 ; CHECK: .intel_syntax | |
| 114 ; CHECK: .att_syntax | |
| 115 ; CHECK: leal PrimitiveUninit, | |
| 116 ; CHECK: .intel_syntax | |
| 117 ; CHECK: .att_syntax | |
| 118 ; CHECK: leal ArrayInit, | |
| 119 ; CHECK: .intel_syntax | |
| 120 ; CHECK: .att_syntax | |
| 121 ; CHECK: leal ArrayInitPartial, | |
| 122 ; CHECK: .intel_syntax | |
| 123 ; CHECK: .att_syntax | |
| 124 ; CHECK: leal ArrayUninit, | |
| 125 ; CHECK: .intel_syntax | |
| 126 | 112 |
| 127 ; llvm-objdump does not indicate what symbol the mov/relocation applies to | 113 ; llvm-objdump does not indicate what symbol the mov/relocation applies to |
| 128 ; so we grep for "mov {{.*}}, OFFSET", along with "OFFSET {{.*}} symbol" in | 114 ; so we grep for "mov {{.*}}, OFFSET", along with "OFFSET {{.*}} symbol" in |
| 129 ; the symbol table as a sanity check. NOTE: The symbol table sorting has no | 115 ; the symbol table as a sanity check. NOTE: The symbol table sorting has no |
| 130 ; relation to the code's references. | 116 ; relation to the code's references. |
| 131 ; IAS-LABEL: main | 117 ; IAS-LABEL: main |
| 132 ; SYMTAB-LABEL: SYMBOL TABLE | 118 ; SYMTAB-LABEL: SYMBOL TABLE |
| 133 | 119 |
| 134 ; SYMTAB-DAG: 00000000 {{.*}} .data {{.*}} PrimitiveInit | 120 ; SYMTAB-DAG: 00000000 {{.*}} .data {{.*}} PrimitiveInit |
| 135 ; IAS: mov {{.*}}, 0 | 121 ; IAS: mov {{.*}}, 0 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 ret i32 0 | 160 ret i32 0 |
| 175 } | 161 } |
| 176 | 162 |
| 177 define internal i32 @nacl_tp_tls_offset(i32 %size) { | 163 define internal i32 @nacl_tp_tls_offset(i32 %size) { |
| 178 entry: | 164 entry: |
| 179 %result = sub i32 0, %size | 165 %result = sub i32 0, %size |
| 180 ret i32 %result | 166 ret i32 %result |
| 181 } | 167 } |
| 182 | 168 |
| 183 ; ERRORS-NOT: ICE translation error | 169 ; ERRORS-NOT: ICE translation error |
| OLD | NEW |