243 lines · plain
1; RUN: llvm-mc -n -triple arm64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -r --expand-relocs - | FileCheck %s2 3 .text4_fred:5 bl _func6 bl _func + 207 8 adrp x3, _data@page9 ldr w2, [x3, _data@pageoff]10 11 add x3, x3, _data@pageoff + 412 13 adrp x3, _data@page+114 ldr w2, [x3, _data@pageoff + 4]15 16 adrp x3, _data_ext@gotpage17 ldr w2, [x3, _data_ext@gotpageoff]18 adrp x0, L_.str@PAGE19 20 adrp x3, L1@PAGE - 521 add x3, x3, L1@pageoff - (4+1)22 23 .data24_data:25 .quad _foo26L1:27 .quad _foo + 428 .quad _foo - _bar29 .quad _foo - _bar + 430 31 .long _foo - _bar32 33 .quad _foo@got34 .long _foo@got - .35 36 .section __TEXT,__cstring,cstring_literals37L_.str:38 .asciz "foo"39 40 41; CHECK: Relocations [42; CHECK-NEXT: Section __text {43; CHECK-NEXT: Relocation {44; CHECK-NEXT: Offset: 0x2C45; CHECK-NEXT: PCRel: 046; CHECK-NEXT: Length: 247; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)48; CHECK-NEXT: Section: __cstring (3)49; CHECK-NEXT: }50; CHECK-NEXT: Relocation {51; CHECK-NEXT: Offset: 0x2C52; CHECK-NEXT: PCRel: 053; CHECK-NEXT: Length: 254; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)55; CHECK-NEXT: Symbol: _data (2)56; CHECK-NEXT: }57; CHECK-NEXT: Relocation {58; CHECK-NEXT: Offset: 0x2859; CHECK-NEXT: PCRel: 060; CHECK-NEXT: Length: 261; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)62; CHECK-NEXT: Section: __cstring (3)63; CHECK-NEXT: }64; CHECK-NEXT: Relocation {65; CHECK-NEXT: Offset: 0x2866; CHECK-NEXT: PCRel: 167; CHECK-NEXT: Length: 268; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)69; CHECK-NEXT: Symbol: _data (2)70; CHECK-NEXT: }71; CHECK-NEXT: Relocation {72; CHECK-NEXT: Offset: 0x2473; CHECK-NEXT: PCRel: 174; CHECK-NEXT: Length: 275; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)76; CHECK-NEXT: Symbol: L_.str77; CHECK-NEXT: }78; CHECK-NEXT: Relocation {79; CHECK-NEXT: Offset: 0x2080; CHECK-NEXT: PCRel: 081; CHECK-NEXT: Length: 282; CHECK-NEXT: Type: ARM64_RELOC_GOT_LOAD_PAGEOFF12 (6)83; CHECK-NEXT: Symbol: _data_ext84; CHECK-NEXT: }85; CHECK-NEXT: Relocation {86; CHECK-NEXT: Offset: 0x1C87; CHECK-NEXT: PCRel: 188; CHECK-NEXT: Length: 289; CHECK-NEXT: Type: ARM64_RELOC_GOT_LOAD_PAGE21 (5)90; CHECK-NEXT: Symbol: _data_ext91; CHECK-NEXT: }92; CHECK-NEXT: Relocation {93; CHECK-NEXT: Offset: 0x1894; CHECK-NEXT: PCRel: 095; CHECK-NEXT: Length: 296; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)97; CHECK-NEXT: Section: - (4)98; CHECK-NEXT: }99; CHECK-NEXT: Relocation {100; CHECK-NEXT: Offset: 0x18101; CHECK-NEXT: PCRel: 0102; CHECK-NEXT: Length: 2103; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)104; CHECK-NEXT: Symbol: _data105; CHECK-NEXT: }106; CHECK-NEXT: Relocation {107; CHECK-NEXT: Offset: 0x14108; CHECK-NEXT: PCRel: 0109; CHECK-NEXT: Length: 2110; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)111; CHECK-NEXT: Section: __text112; CHECK-NEXT: }113; CHECK-NEXT: Relocation {114; CHECK-NEXT: Offset: 0x14115; CHECK-NEXT: PCRel: 1116; CHECK-NEXT: Length: 2117; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)118; CHECK-NEXT: Symbol: _data119; CHECK-NEXT: }120; CHECK-NEXT: Relocation {121; CHECK-NEXT: Offset: 0x10122; CHECK-NEXT: PCRel: 0123; CHECK-NEXT: Length: 2124; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)125; CHECK-NEXT: Section: - (4)126; CHECK-NEXT: }127; CHECK-NEXT: Relocation {128; CHECK-NEXT: Offset: 0x10129; CHECK-NEXT: PCRel: 0130; CHECK-NEXT: Length: 2131; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)132; CHECK-NEXT: Symbol: _data133; CHECK-NEXT: }134; CHECK-NEXT: Relocation {135; CHECK-NEXT: Offset: 0xC136; CHECK-NEXT: PCRel: 0137; CHECK-NEXT: Length: 2138; CHECK-NEXT: Type: ARM64_RELOC_PAGEOFF12 (4)139; CHECK-NEXT: Symbol: _data140; CHECK-NEXT: }141; CHECK-NEXT: Relocation {142; CHECK-NEXT: Offset: 0x8143; CHECK-NEXT: PCRel: 1144; CHECK-NEXT: Length: 2145; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)146; CHECK-NEXT: Symbol: _data147; CHECK-NEXT: }148; CHECK-NEXT: Relocation {149; CHECK-NEXT: Offset: 0x4150; CHECK-NEXT: PCRel: 0151; CHECK-NEXT: Length: 2152; CHECK-NEXT: Type: ARM64_RELOC_ADDEND (10)153; CHECK-NEXT: Section: - (20)154; CHECK-NEXT: }155; CHECK-NEXT: Relocation {156; CHECK-NEXT: Offset: 0x4157; CHECK-NEXT: PCRel: 1158; CHECK-NEXT: Length: 2159; CHECK-NEXT: Type: ARM64_RELOC_BRANCH26 (2)160; CHECK-NEXT: Symbol: _func161; CHECK-NEXT: }162; CHECK-NEXT: Relocation {163; CHECK-NEXT: Offset: 0x0164; CHECK-NEXT: PCRel: 1165; CHECK-NEXT: Length: 2166; CHECK-NEXT: Type: ARM64_RELOC_BRANCH26 (2)167; CHECK-NEXT: Symbol: _func168; CHECK-NEXT: }169; CHECK-NEXT: }170; CHECK-NEXT: Section __data {171; CHECK-NEXT: Relocation {172; CHECK-NEXT: Offset: 0x2C173; CHECK-NEXT: PCRel: 1174; CHECK-NEXT: Length: 2175; CHECK-NEXT: Type: ARM64_RELOC_POINTER_TO_GOT (7)176; CHECK-NEXT: Symbol: _foo177; CHECK-NEXT: }178; CHECK-NEXT: Relocation {179; CHECK-NEXT: Offset: 0x24180; CHECK-NEXT: PCRel: 0181; CHECK-NEXT: Length: 3182; CHECK-NEXT: Type: ARM64_RELOC_POINTER_TO_GOT (7)183; CHECK-NEXT: Symbol: _foo184; CHECK-NEXT: }185; CHECK-NEXT: Relocation {186; CHECK-NEXT: Offset: 0x20187; CHECK-NEXT: PCRel: 0188; CHECK-NEXT: Length: 2189; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1)190; CHECK-NEXT: Symbol: _bar191; CHECK-NEXT: }192; CHECK-NEXT: Relocation {193; CHECK-NEXT: Offset: 0x20194; CHECK-NEXT: PCRel: 0195; CHECK-NEXT: Length: 2196; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)197; CHECK-NEXT: Symbol: _foo198; CHECK-NEXT: }199; CHECK-NEXT: Relocation {200; CHECK-NEXT: Offset: 0x18201; CHECK-NEXT: PCRel: 0202; CHECK-NEXT: Length: 3203; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1)204; CHECK-NEXT: Symbol: _bar205; CHECK-NEXT: }206; CHECK-NEXT: Relocation {207; CHECK-NEXT: Offset: 0x18208; CHECK-NEXT: PCRel: 0209; CHECK-NEXT: Length: 3210; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)211; CHECK-NEXT: Symbol: _foo212; CHECK-NEXT: }213; CHECK-NEXT: Relocation {214; CHECK-NEXT: Offset: 0x10215; CHECK-NEXT: PCRel: 0216; CHECK-NEXT: Length: 3217; CHECK-NEXT: Type: ARM64_RELOC_SUBTRACTOR (1)218; CHECK-NEXT: Symbol: _bar219; CHECK-NEXT: }220; CHECK-NEXT: Relocation {221; CHECK-NEXT: Offset: 0x10222; CHECK-NEXT: PCRel: 0223; CHECK-NEXT: Length: 3224; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)225; CHECK-NEXT: Symbol: _foo226; CHECK-NEXT: }227; CHECK-NEXT: Relocation {228; CHECK-NEXT: Offset: 0x8229; CHECK-NEXT: PCRel: 0230; CHECK-NEXT: Length: 3231; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)232; CHECK-NEXT: Symbol: _foo233; CHECK-NEXT: }234; CHECK-NEXT: Relocation {235; CHECK-NEXT: Offset: 0x0236; CHECK-NEXT: PCRel: 0237; CHECK-NEXT: Length: 3238; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)239; CHECK-NEXT: Symbol: _foo240; CHECK-NEXT: }241; CHECK-NEXT: }242; CHECK-NEXT: ]243