184 lines · plain
1;; This file tests how llc handles symbols containing invalid characters on an2;; XCOFF platform.3;; Since symbol name resolution is the same between 32-bit and 64-bit,4;; tests for 64-bit mode are omitted.5 6; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \7; RUN: -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \8; RUN: FileCheck --check-prefix=ASM %s9 10; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \11; RUN: -mattr=-altivec -data-sections=false -xcoff-traceback-table=false -filetype=obj -o %t.o < %s12; RUN: llvm-objdump -D -r --symbol-description %t.o | \13; RUN: FileCheck --check-prefix=OBJ -D#NFA=2 %s14 15; This is f`o16@"f\60o" = global i32 10, align 417 18; This is f"o"19@"f\22o\22" = common global i32 0, align 420 21; This is f=o22@"f\3do" = internal global i32 0, align 423 24define internal i32 @f$o() {25entry:26 %call = call i32 @"f\40o"()27 ret i32 %call28}29 30; This is f&o31define i32 @"f\26o"() {32entry:33 %tmp = call i32 @f$o()34 %tmp1 = load i32, ptr @"f\3do"35 %tmp2 = add i32 %tmp, %tmp136 ret i32 %tmp237}38 39; This is f&_o40define ptr @"f\26_o"() {41entry:42 ret ptr @"f\40o"43}44 45; This is f@o46declare i32 @"f\40o"(...)47 48; ASM: .lglobl _Renamed..24f_o[DS] # -- Begin function f$o49; ASM-NEXT: .rename _Renamed..24f_o[DS],"f$o"50; ASM-NEXT: .lglobl ._Renamed..24f_o51; ASM-NEXT: .rename ._Renamed..24f_o,".f$o"52; ASM-NEXT: .align 453; ASM-NEXT: .csect _Renamed..24f_o[DS],254; ASM-NEXT: .vbyte 4, ._Renamed..24f_o # @"f$o"55; ASM-NEXT: .vbyte 4, TOC[TC0]56; ASM-NEXT: .vbyte 4, 057; ASM-NEXT: .csect ..text..[PR],558; ASM-NEXT: ._Renamed..24f_o:59; ASM: bl ._Renamed..40f_o[PR]60; ASM-NEXT: nop61; ASM: .globl _Renamed..26f_o[DS] # -- Begin function f&o62; ASM-NEXT: .rename _Renamed..26f_o[DS],"f&o"63; ASM-NEXT: .globl ._Renamed..26f_o64; ASM-NEXT: .rename ._Renamed..26f_o,".f&o"65; ASM-NEXT: .align 466; ASM-NEXT: .csect _Renamed..26f_o[DS],267; ASM-NEXT: .vbyte 4, ._Renamed..26f_o # @"f&o"68; ASM-NEXT: .vbyte 4, TOC[TC0]69; ASM-NEXT: .vbyte 4, 070; ASM-NEXT: .csect ..text..[PR],571; ASM-NEXT: ._Renamed..26f_o:72; ASM: bl ._Renamed..24f_o73; ASM: .globl _Renamed..265ff__o[DS] # -- Begin function f&_o74; ASM-NEXT: .rename _Renamed..265ff__o[DS],"f&_o"75; ASM-NEXT: .globl ._Renamed..265ff__o76; ASM-NEXT: .rename ._Renamed..265ff__o,".f&_o"77; ASM-NEXT: .align 478; ASM-NEXT: .csect _Renamed..265ff__o[DS],279; ASM-NEXT: .vbyte 4, ._Renamed..265ff__o # @"f&_o"80; ASM-NEXT: .vbyte 4, TOC[TC0]81; ASM-NEXT: .vbyte 4, 082; ASM-NEXT: .csect ..text..[PR],583; ASM-NEXT: ._Renamed..265ff__o:84; ASM: .csect .data[RW],285; ASM-NEXT: .globl _Renamed..60f_o86; ASM-NEXT: .rename _Renamed..60f_o,"f`o"87; ASM-NEXT: .align 288; ASM-NEXT: _Renamed..60f_o:89; ASM-NEXT: .vbyte 4, 10 # 0xa90; ASM-NEXT: .comm _Renamed..2222f_o_[RW],4,291; ASM-NEXT: .rename _Renamed..2222f_o_[RW],"f""o"""92; ASM-NEXT: .lcomm _Renamed..3df_o,4,_Renamed..3df_o[BS],293; ASM-NEXT: .rename _Renamed..3df_o[BS],"f=o"94; ASM-NEXT: .extern ._Renamed..40f_o[PR]95; ASM-NEXT: .rename ._Renamed..40f_o[PR],".f@o"96; ASM-NEXT: .extern _Renamed..40f_o[DS]97; ASM-NEXT: .rename _Renamed..40f_o[DS],"f@o"98; ASM-NEXT: .toc99; ASM-NEXT: L..C0:100; ASM-NEXT: .tc _Renamed..3df_o[TC],_Renamed..3df_o[BS]101; ASM-NEXT: .rename _Renamed..3df_o[TC],"f=o"102; ASM-NEXT: L..C1:103; ASM-NEXT: .tc _Renamed..40f_o[TC],_Renamed..40f_o[DS]104; ASM-NEXT: .rename _Renamed..40f_o[TC],"f@o"105 106; OBJ: Disassembly of section .text:107; OBJ-EMPTY:108; OBJ-NEXT: 00000000 (idx: [[#NFA+7]]) .f$o:109; OBJ-NEXT: 0: 7c 08 02 a6 mflr 0110; OBJ-NEXT: 4: 94 21 ff c0 stwu 1, -64(1)111; OBJ-NEXT: 8: 90 01 00 48 stw 0, 72(1)112; OBJ-NEXT: c: 4b ff ff f5 bl 0x0113; OBJ-NEXT: 0000000c: R_RBR (idx: [[#NFA+1]]) .f@o[PR]114; OBJ-NEXT: 10: 60 00 00 00 nop115; OBJ-NEXT: 14: 38 21 00 40 addi 1, 1, 64116; OBJ-NEXT: 18: 80 01 00 08 lwz 0, 8(1)117; OBJ-NEXT: 1c: 7c 08 03 a6 mtlr 0118; OBJ-NEXT: 20: 4e 80 00 20 blr119; OBJ-NEXT: 24: 60 00 00 00 nop120; OBJ-NEXT: 28: 60 00 00 00 nop121; OBJ-NEXT: 2c: 60 00 00 00 nop122; OBJ-EMPTY:123; OBJ-NEXT: 00000030 (idx: [[#NFA+9]]) .f&o:124; OBJ-NEXT: 30: 7c 08 02 a6 mflr 0125; OBJ-NEXT: 34: 94 21 ff c0 stwu 1, -64(1)126; OBJ-NEXT: 38: 90 01 00 48 stw 0, 72(1)127; OBJ-NEXT: 3c: 4b ff ff c5 bl 0x0128; OBJ-NEXT: 40: 80 82 00 00 lwz 4, 0(2)129; OBJ-NEXT: 00000042: R_TOC (idx: [[#NFA+25]]) f=o[TC]130; OBJ-NEXT: 44: 80 84 00 00 lwz 4, 0(4)131; OBJ-NEXT: 48: 7c 63 22 14 add 3, 3, 4132; OBJ-NEXT: 4c: 38 21 00 40 addi 1, 1, 64133; OBJ-NEXT: 50: 80 01 00 08 lwz 0, 8(1)134; OBJ-NEXT: 54: 7c 08 03 a6 mtlr 0135; OBJ-NEXT: 58: 4e 80 00 20 blr136; OBJ-NEXT: 5c: 60 00 00 00 nop137; OBJ-EMPTY:138; OBJ-NEXT: 00000060 (idx: [[#NFA+11]]) .f&_o:139; OBJ-NEXT: 60: 80 62 00 04 lwz 3, 4(2)140; OBJ-NEXT: 00000062: R_TOC (idx: [[#NFA+27]]) f@o[TC]141; OBJ-NEXT: 64: 4e 80 00 20 blr142; OBJ-EMPTY:143; OBJ-NEXT: Disassembly of section .data:144; OBJ-EMPTY:145; OBJ-NEXT: 00000068 (idx: [[#NFA+15]]) f`o:146; OBJ-NEXT: 68: 00 00 00 0a <unknown>147; OBJ-EMPTY:148; OBJ-NEXT: 0000006c (idx: [[#NFA+17]]) f$o[DS]:149; OBJ-NEXT: 6c: 00 00 00 00 <unknown>150; OBJ-NEXT: 0000006c: R_POS (idx: [[#NFA+7]]) .f$o151; OBJ-NEXT: 70: 00 00 00 90 <unknown>152; OBJ-NEXT: 00000070: R_POS (idx: [[#NFA+23]]) TOC[TC0]153; OBJ-NEXT: 74: 00 00 00 00 <unknown>154; OBJ-EMPTY:155; OBJ-NEXT: 00000078 (idx: [[#NFA+19]]) f&o[DS]:156; OBJ-NEXT: 78: 00 00 00 30 <unknown>157; OBJ-NEXT: 00000078: R_POS (idx: [[#NFA+9]]) .f&o158; OBJ-NEXT: 7c: 00 00 00 90 <unknown>159; OBJ-NEXT: 0000007c: R_POS (idx: [[#NFA+23]]) TOC[TC0]160; OBJ-NEXT: 80: 00 00 00 00 <unknown>161; OBJ-EMPTY:162; OBJ-NEXT: 00000084 (idx: [[#NFA+21]]) f&_o[DS]:163; OBJ-NEXT: 84: 00 00 00 60 <unknown>164; OBJ-NEXT: 00000084: R_POS (idx: [[#NFA+11]]) .f&_o165; OBJ-NEXT: 88: 00 00 00 90 <unknown>166; OBJ-NEXT: 00000088: R_POS (idx: [[#NFA+23]]) TOC[TC0]167; OBJ-NEXT: 8c: 00 00 00 00 <unknown>168; OBJ-EMPTY:169; OBJ-NEXT: 00000090 (idx: [[#NFA+25]]) f=o[TC]:170; OBJ-NEXT: 90: 00 00 00 9c <unknown>171; OBJ-NEXT: 00000090: R_POS (idx: [[#NFA+31]]) f=o[BS]172; OBJ-EMPTY:173; OBJ-NEXT: 00000094 (idx: [[#NFA+27]]) f@o[TC]:174; OBJ-NEXT: 94: 00 00 00 00 <unknown>175; OBJ-NEXT: 00000094: R_POS (idx: [[#NFA+3]]) f@o[DS]176; OBJ-EMPTY:177; OBJ-NEXT: Disassembly of section .bss:178; OBJ-EMPTY:179; OBJ-NEXT: 00000098 (idx: [[#NFA+29]]) f"o"[RW]:180; OBJ-NEXT: ...181; OBJ-EMPTY:182; OBJ-NEXT: 0000009c (idx: [[#NFA+31]]) f=o[BS]:183; OBJ-NEXT: ...184