brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.5 KiB · 0cca7ea Raw
339 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \2; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \3; RUN:   FileCheck --check-prefixes=COMMON,BIT32 %s4 5; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \6; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \7; RUN:   FileCheck --check-prefixes=COMMON,BIT64 %s8 9; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \10; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false \11; RUN:   -filetype=obj -o %t.o < %s12; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM32 %s13 14; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \15; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false \16; RUN:   -filetype=obj -o %t64.o < %s17; RUN: llvm-readobj --symbols %t64.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM64 %s18 19@foo_ext_weak_p = global ptr @foo_ext_weak_ref20@b_w = extern_weak global i3221 22declare extern_weak void @foo_ext_weak_ref()23 24define i32 @main() {25entry:26  %0 = load ptr, ptr @foo_ext_weak_p27  call void %0()28  call void @foo_ext_weak(ptr @b_w)29  ret i32 030}31 32declare extern_weak void @foo_ext_weak(ptr)33 34; COMMON:         .globl	main[DS]                # -- Begin function main35; COMMON-NEXT:    .globl	.main36; COMMON-NEXT:    .align	437; COMMON-NEXT:    .csect main[DS]38; BIT32-NEXT:     .vbyte	4, .main                   # @main39; BIT32-NEXT:     .vbyte	4, TOC[TC0]40; BIT32-NEXT:     .vbyte	4, 041; BIT64-NEXT:     .vbyte	8, .main                   # @main42; BIT64-NEXT:     .vbyte	8, TOC[TC0]43; BIT64-NEXT:     .vbyte	8, 044; COMMON-NEXT:    .csect  ..text..[PR]45; COMMON-NEXT:    .main:46 47; COMMON:         .csect  .data[RW]48; COMMON:         .globl  foo_ext_weak_p49; BIT32-NEXT:     .align	250; BIT64-NEXT:     .align 	351; COMMON-NEXT: foo_ext_weak_p:52; BIT32-NEXT: 	  .vbyte	4, foo_ext_weak_ref[DS]53; BIT64-NEXT: 	  .vbyte	8, foo_ext_weak_ref[DS]54; COMMON-NEXT:    .weak   b_w[UA]55; COMMON-NEXT:    .weak   .foo_ext_weak_ref[PR]56; COMMON-NEXT:    .weak   foo_ext_weak_ref[DS]57; COMMON-NEXT:    .weak   .foo_ext_weak[PR]58; COMMON-NEXT:    .toc59; COMMON-NEXT: L..C0:60; COMMON-NEXT:    .tc foo_ext_weak_p[TC],foo_ext_weak_p61; COMMON-NEXT: L..C1:62; COMMON-NEXT:    .tc b_w[TC],b_w[UA]63 64; CHECKSYM:      Symbols [65; CHECKSYM-NEXT:   Symbol {66; CHECKSYM-NEXT:     Index: 067; CHECKSYM-NEXT:     Name: .file68; CHECKSYM-NEXT:     Value (SymbolTableIndex): 0x069; CHECKSYM-NEXT:     Section: N_DEBUG70; CHECKSYM-NEXT:     Source Language ID: TB_CPLUSPLUS (0x9)71; CHECKSYM-NEXT:     CPU Version ID: TCPU_COM (0x3)72; CHECKSYM-NEXT:     StorageClass: C_FILE (0x67)73; CHECKSYM-NEXT:     NumberOfAuxEntries: 274; CHECKSYM:        Symbol {75; CHECKSYM-NEXT:     Index: [[#Index:]]76; CHECKSYM-NEXT:     Name: .foo_ext_weak77; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x078; CHECKSYM-NEXT:     Section: N_UNDEF79; CHECKSYM-NEXT:     Type: 0x080; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)81; CHECKSYM-NEXT:     NumberOfAuxEntries: 182; CHECKSYM-NEXT:     CSECT Auxiliary Entry {83; CHECKSYM-NEXT:       Index: [[#Index+1]]84; CHECKSYM-NEXT:       SectionLen: 085; CHECKSYM-NEXT:       ParameterHashIndex: 0x086; CHECKSYM-NEXT:       TypeChkSectNum: 0x087; CHECKSYM-NEXT:       SymbolAlignmentLog2: 088; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)89; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)90; CHECKSYM32-NEXT:     StabInfoIndex: 0x091; CHECKSYM32-NEXT:     StabSectNum: 0x092; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)93; CHECKSYM-NEXT:     }94; CHECKSYM-NEXT:   }95; CHECKSYM-NEXT:   Symbol {96; CHECKSYM-NEXT:     Index: [[#Index+2]]97; CHECKSYM-NEXT:     Name: foo_ext_weak_ref98; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x099; CHECKSYM-NEXT:     Section: N_UNDEF100; CHECKSYM-NEXT:     Type: 0x0101; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)102; CHECKSYM-NEXT:     NumberOfAuxEntries: 1103; CHECKSYM-NEXT:     CSECT Auxiliary Entry {104; CHECKSYM-NEXT:       Index: [[#Index+3]]105; CHECKSYM-NEXT:       SectionLen: 0106; CHECKSYM-NEXT:       ParameterHashIndex: 0x0107; CHECKSYM-NEXT:       TypeChkSectNum: 0x0108; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0109; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)110; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)111; CHECKSYM32-NEXT:     StabInfoIndex: 0x0112; CHECKSYM32-NEXT:     StabSectNum: 0x0113; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)114; CHECKSYM-NEXT:     }115; CHECKSYM-NEXT:   }116; CHECKSYM-NEXT:   Symbol {117; CHECKSYM-NEXT:     Index: [[#Index+4]]118; CHECKSYM-NEXT:     Name: b_w119; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0120; CHECKSYM-NEXT:     Section: N_UNDEF121; CHECKSYM-NEXT:     Type: 0x0122; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)123; CHECKSYM-NEXT:     NumberOfAuxEntries: 1124; CHECKSYM-NEXT:     CSECT Auxiliary Entry {125; CHECKSYM-NEXT:       Index: [[#Index+5]]126; CHECKSYM-NEXT:       SectionLen: 0127; CHECKSYM-NEXT:       ParameterHashIndex: 0x0128; CHECKSYM-NEXT:       TypeChkSectNum: 0x0129; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0130; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)131; CHECKSYM-NEXT:       StorageMappingClass: XMC_UA (0x4)132; CHECKSYM32-NEXT:     StabInfoIndex: 0x0133; CHECKSYM32-NEXT:     StabSectNum: 0x0134; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)135; CHECKSYM-NEXT:     }136; CHECKSYM-NEXT:   }137; CHECKSYM-NEXT:   Symbol {138; CHECKSYM-NEXT:     Index: [[#Index+6]]139; CHECKSYM-NEXT:     Name: .foo_ext_weak_ref140; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0141; CHECKSYM-NEXT:     Section: N_UNDEF142; CHECKSYM-NEXT:     Type: 0x0143; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)144; CHECKSYM-NEXT:     NumberOfAuxEntries: 1145; CHECKSYM-NEXT:     CSECT Auxiliary Entry {146; CHECKSYM-NEXT:       Index: [[#Index+7]]147; CHECKSYM-NEXT:       SectionLen: 0148; CHECKSYM-NEXT:       ParameterHashIndex: 0x0149; CHECKSYM-NEXT:       TypeChkSectNum: 0x0150; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0151; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)152; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)153; CHECKSYM32-NEXT:     StabInfoIndex: 0x0154; CHECKSYM32-NEXT:     StabSectNum: 0x0155; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)156; CHECKSYM-NEXT:     }157; CHECKSYM-NEXT:   }158; CHECKSYM-NEXT:   Symbol {159; CHECKSYM-NEXT:     Index: [[#Index+8]]160; CHECKSYM-NEXT:     Name:161; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0162; CHECKSYM-NEXT:     Section: .text163; CHECKSYM-NEXT:     Type: 0x0164; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)165; CHECKSYM-NEXT:     NumberOfAuxEntries: 1166; CHECKSYM-NEXT:     CSECT Auxiliary Entry {167; CHECKSYM-NEXT:       Index: [[#Index+9]]168; CHECKSYM-NEXT:       SectionLen: 80169; CHECKSYM-NEXT:       ParameterHashIndex: 0x0170; CHECKSYM-NEXT:       TypeChkSectNum: 0x0171; CHECKSYM-NEXT:       SymbolAlignmentLog2: 5172; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)173; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)174; CHECKSYM32-NEXT:     StabInfoIndex: 0x0175; CHECKSYM32-NEXT:     StabSectNum: 0x0176; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)177; CHECKSYM-NEXT:     }178; CHECKSYM-NEXT:   }179; CHECKSYM-NEXT:   Symbol {180; CHECKSYM-NEXT:     Index: [[#Index+10]]181; CHECKSYM-NEXT:     Name: .main182; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0183; CHECKSYM-NEXT:     Section: .text184; CHECKSYM-NEXT:     Type: 0x0185; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)186; CHECKSYM-NEXT:     NumberOfAuxEntries: 1187; CHECKSYM-NEXT:     CSECT Auxiliary Entry {188; CHECKSYM-NEXT:       Index: [[#Index+11]]189; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+8]]190; CHECKSYM-NEXT:       ParameterHashIndex: 0x0191; CHECKSYM-NEXT:       TypeChkSectNum: 0x0192; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0193; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)194; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)195; CHECKSYM32-NEXT:     StabInfoIndex: 0x0196; CHECKSYM32-NEXT:     StabSectNum: 0x0197; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)198; CHECKSYM-NEXT:     }199; CHECKSYM-NEXT:   }200; CHECKSYM-NEXT:   Symbol {201; CHECKSYM-NEXT:     Index: [[#Index+12]]202; CHECKSYM-NEXT:     Name: .data203; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x50204; CHECKSYM-NEXT:     Section: .data205; CHECKSYM-NEXT:     Type: 0x0206; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)207; CHECKSYM-NEXT:     NumberOfAuxEntries: 1208; CHECKSYM-NEXT:     CSECT Auxiliary Entry {209; CHECKSYM-NEXT:       Index: [[#Index+13]]210; CHECKSYM32-NEXT:     SectionLen: 4211; CHECKSYM64-NEXT:     SectionLen: 8212; CHECKSYM-NEXT:       ParameterHashIndex: 0x0213; CHECKSYM-NEXT:       TypeChkSectNum: 0x0214; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2215; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3216; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)217; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)218; CHECKSYM32-NEXT:     StabInfoIndex: 0x0219; CHECKSYM32-NEXT:     StabSectNum: 0x0220; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)221; CHECKSYM-NEXT:     }222; CHECKSYM-NEXT:   }223; CHECKSYM-NEXT:   Symbol {224; CHECKSYM-NEXT:     Index: [[#Index+14]]225; CHECKSYM-NEXT:     Name: foo_ext_weak_p226; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x50227; CHECKSYM-NEXT:     Section: .data228; CHECKSYM-NEXT:     Type: 0x0229; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)230; CHECKSYM-NEXT:     NumberOfAuxEntries: 1231; CHECKSYM-NEXT:     CSECT Auxiliary Entry {232; CHECKSYM-NEXT:       Index: [[#Index+15]]233; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+12]]234; CHECKSYM-NEXT:       ParameterHashIndex: 0x0235; CHECKSYM-NEXT:       TypeChkSectNum: 0x0236; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0237; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)238; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)239; CHECKSYM32-NEXT:     StabInfoIndex: 0x0240; CHECKSYM32-NEXT:     StabSectNum: 0x0241; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)242; CHECKSYM-NEXT:     }243; CHECKSYM-NEXT:   }244; CHECKSYM-NEXT:   Symbol {245; CHECKSYM-NEXT:     Index: [[#Index+16]]246; CHECKSYM-NEXT:     Name: main247; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x54248; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x58249; CHECKSYM-NEXT:     Section: .data250; CHECKSYM-NEXT:     Type: 0x0251; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)252; CHECKSYM-NEXT:     NumberOfAuxEntries: 1253; CHECKSYM-NEXT:     CSECT Auxiliary Entry {254; CHECKSYM-NEXT:       Index: [[#Index+17]]255; CHECKSYM32-NEXT:     SectionLen: 12256; CHECKSYM64-NEXT:     SectionLen: 24257; CHECKSYM-NEXT:       ParameterHashIndex: 0x0258; CHECKSYM-NEXT:       TypeChkSectNum: 0x0259; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2260; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3261; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)262; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)263; CHECKSYM32-NEXT:     StabInfoIndex: 0x0264; CHECKSYM32-NEXT:     StabSectNum: 0x0265; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)266; CHECKSYM-NEXT:     }267; CHECKSYM-NEXT:   }268; CHECKSYM-NEXT:   Symbol {269; CHECKSYM-NEXT:     Index: [[#Index+18]]270; CHECKSYM-NEXT:     Name: TOC271; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x60272; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x70273; CHECKSYM-NEXT:     Section: .data274; CHECKSYM-NEXT:     Type: 0x0275; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)276; CHECKSYM-NEXT:     NumberOfAuxEntries: 1277; CHECKSYM-NEXT:     CSECT Auxiliary Entry {278; CHECKSYM-NEXT:       Index: [[#Index+19]]279; CHECKSYM-NEXT:       SectionLen: 0280; CHECKSYM-NEXT:       ParameterHashIndex: 0x0281; CHECKSYM-NEXT:       TypeChkSectNum: 0x0282; CHECKSYM-NEXT:       SymbolAlignmentLog2: 2283; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)284; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC0 (0xF)285; CHECKSYM32-NEXT:     StabInfoIndex: 0x0286; CHECKSYM32-NEXT:     StabSectNum: 0x0287; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)288; CHECKSYM-NEXT:     }289; CHECKSYM-NEXT:   }290; CHECKSYM-NEXT:   Symbol {291; CHECKSYM-NEXT:     Index: [[#Index+20]]292; CHECKSYM-NEXT:     Name: foo_ext_weak_p293; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x60294; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x70295; CHECKSYM-NEXT:     Section: .data296; CHECKSYM-NEXT:     Type: 0x0297; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)298; CHECKSYM-NEXT:     NumberOfAuxEntries: 1299; CHECKSYM-NEXT:     CSECT Auxiliary Entry {300; CHECKSYM-NEXT:       Index: [[#Index+21]]301; CHECKSYM32-NEXT:     SectionLen: 4302; CHECKSYM64-NEXT:     SectionLen: 8303; CHECKSYM-NEXT:       ParameterHashIndex: 0x0304; CHECKSYM-NEXT:       TypeChkSectNum: 0x0305; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2306; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3307; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)308; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)309; CHECKSYM32-NEXT:     StabInfoIndex: 0x0310; CHECKSYM32-NEXT:     StabSectNum: 0x0311; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)312; CHECKSYM-NEXT:     }313; CHECKSYM-NEXT:   }314; CHECKSYM-NEXT:   Symbol {315; CHECKSYM-NEXT:     Index: [[#Index+22]]316; CHECKSYM-NEXT:     Name: b_w317; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x64318; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x78319; CHECKSYM-NEXT:     Section: .data320; CHECKSYM-NEXT:     Type: 0x0321; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)322; CHECKSYM-NEXT:     NumberOfAuxEntries: 1323; CHECKSYM-NEXT:     CSECT Auxiliary Entry {324; CHECKSYM-NEXT:       Index: [[#Index+23]]325; CHECKSYM32-NEXT:     SectionLen: 4326; CHECKSYM64-NEXT:     SectionLen: 8327; CHECKSYM-NEXT:       ParameterHashIndex: 0x0328; CHECKSYM-NEXT:       TypeChkSectNum: 0x0329; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2330; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3331; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)332; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)333; CHECKSYM32-NEXT:     StabInfoIndex: 0x0334; CHECKSYM32-NEXT:     StabSectNum: 0x0335; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)336; CHECKSYM-NEXT:     }337; CHECKSYM-NEXT:   }338; CHECKSYM-NEXT: ]339