1; RUN: llvm-mc -filetype=obj -triple=avr %s -mattr=avr6 | llvm-objdump -r - | FileCheck %s 2 3; CHECK: RELOCATION RECORDS FOR 4 5.global bar 6bar: 7 jmp bar 8 9; CHECK: R_AVR_LDI SYMBOL+0x3 10ldi r21, SYMBOL+3 11 12; CHECK: R_AVR_6 SYMBOL+0x4 13ldd r8, Y+SYMBOL+4 14 15; CHECK-NEXT: R_AVR_6_ADIW FOO 16adiw r24, FOO 17 18; CHECK-NEXT: R_AVR_16 BAR+0x2 19lds r8, BAR+2 20 21; CHECK-NEXT: R_AVR_PORT5 foo 22sbic foo, 1 23 24; CHECK-NEXT: R_AVR_PORT6 Bar+0x2 25in r30, Bar+2 26 27; CHECK-NEXT: R_AVR_CALL foo+0x3 28call foo+3 29 30; CHECK-NEXT: R_AVR_13_PCREL foo-0xa 31rjmp foo-10 32 33; CHECK-NEXT: R_AVR_7_PCREL foo+0x2 34brcs foo+2 35 36; CHECK-NEXT: R_AVR_LO8_LDI bar+0x3 37; CHECK-NEXT: R_AVR_LO8_LDI abc 38; CHECK-NEXT: R_AVR_LO8_LDI abc 39ldi r24, lo8(bar+3) 40ldi r16, +lo8(abc) 41ldi r16, lo8(+(abc)) 42 43; CHECK-NEXT: R_AVR_HI8_LDI abc 44; CHECK-NEXT: R_AVR_HI8_LDI abc 45; CHECK-NEXT: R_AVR_HI8_LDI abc 46ldi r30, hi8(abc) 47ldi r16, +hi8(abc) 48ldi r16, hi8(+(abc)) 49 50; CHECK-NEXT: R_AVR_LO8_LDI_NEG abc 51; CHECK-NEXT: R_AVR_LO8_LDI_NEG abc 52ldi r16, -lo8(abc) 53ldi r16, lo8(-(abc)) 54 55; CHECK-NEXT: R_AVR_HI8_LDI_NEG abc 56; CHECK-NEXT: R_AVR_HI8_LDI_NEG abc 57ldi r16, -hi8(abc) 58ldi r16, hi8(-(abc)) 59 60; CHECK-NEXT: R_AVR_HH8_LDI foo 61; CHECK-NEXT: R_AVR_HH8_LDI foo 62; CHECK-NEXT: R_AVR_HH8_LDI foo 63ldi r16, hh8(foo) 64ldi r16, +hh8(foo) 65ldi r16, hh8(+(foo)) 66 67; CHECK-NEXT: R_AVR_HH8_LDI_NEG foo 68; CHECK-NEXT: R_AVR_HH8_LDI_NEG foo 69ldi r16, -hh8(foo) 70ldi r16, hh8(-(foo)) 71 72; CHECK-NEXT: R_AVR_HH8_LDI foo 73; CHECK-NEXT: R_AVR_HH8_LDI foo 74; CHECK-NEXT: R_AVR_HH8_LDI foo 75ldi r24, hlo8(foo) 76ldi r24, +hlo8(foo) 77ldi r24, hlo8(+(foo)) 78 79; CHECK-NEXT: R_AVR_HH8_LDI_NEG foo 80; CHECK-NEXT: R_AVR_HH8_LDI_NEG foo 81ldi r24, -hlo8(foo) 82ldi r24, hlo8(-(foo)) 83 84; CHECK-NEXT: R_AVR_MS8_LDI bar 85; CHECK-NEXT: R_AVR_MS8_LDI bar 86; CHECK-NEXT: R_AVR_MS8_LDI bar 87ldi r24, hhi8(bar) 88ldi r24, +hhi8(bar) 89ldi r24, hhi8(+(bar)) 90 91; CHECK-NEXT: R_AVR_MS8_LDI_NEG bar 92; CHECK-NEXT: R_AVR_MS8_LDI_NEG bar 93ldi r24, -hhi8(bar) 94ldi r24, hhi8(-(bar)) 95 96; CHECK-NEXT: R_AVR_LO8_LDI_PM foo 97; CHECK-NEXT: R_AVR_LO8_LDI_PM foo 98; CHECK-NEXT: R_AVR_LO8_LDI_PM foo 99ldi r17, pm_lo8(foo) 100ldi r25, +pm_lo8(foo) 101ldi r25, pm_lo8(+(foo)) 102 103; CHECK-NEXT: R_AVR_HI8_LDI_PM bar 104; CHECK-NEXT: R_AVR_HI8_LDI_PM foo 105; CHECK-NEXT: R_AVR_HI8_LDI_PM foo 106ldi r22, pm_hi8(bar) 107ldi r25, +pm_hi8(foo) 108ldi r25, pm_hi8(+(foo)) 109 110; CHECK-NEXT: R_AVR_HH8_LDI_PM baz 111; CHECK-NEXT: R_AVR_HH8_LDI_PM foo 112; CHECK-NEXT: R_AVR_HH8_LDI_PM foo 113ldi r25, pm_hh8(baz) 114ldi r25, +pm_hh8(foo) 115ldi r25, pm_hh8(+(foo)) 116 117; CHECK-NEXT: R_AVR_LO8_LDI_PM_NEG foo 118; CHECK-NEXT: R_AVR_LO8_LDI_PM_NEG foo 119ldi r25, -pm_lo8(foo) 120ldi r25, pm_lo8(-(foo)) 121 122; CHECK-NEXT: R_AVR_HI8_LDI_PM_NEG foo 123; CHECK-NEXT: R_AVR_HI8_LDI_PM_NEG foo 124ldi r25, -pm_hi8(foo) 125ldi r25, pm_hi8(-(foo)) 126 127; CHECK-NEXT: R_AVR_HH8_LDI_PM_NEG foo 128; CHECK-NEXT: R_AVR_HH8_LDI_PM_NEG foo 129ldi r25, -pm_hh8(foo) 130ldi r25, pm_hh8(-(foo)) 131 132; CHECK-NEXT: R_AVR_LO8_LDI_GS foo 133ldi r17, lo8(gs(foo)) 134 135; CHECK-NEXT: R_AVR_HI8_LDI_GS foo 136ldi r18, hi8(gs(foo)) 137 138; CHECK-NEXT: R_AVR_16 139.short foo 140 141; CHECK-NEXT: R_AVR_16_PM 142.short gs(foo) 143 144; CHECK-NEXT: R_AVR_8 145.byte foo 146 147; CHECK-NEXT: R_AVR_8_LO8 148.byte lo8(foo) 149 150; CHECK-NEXT: R_AVR_8_HI8 151.byte hi8(foo) 152 153; CHECK-NEXT: R_AVR_8_HLO8 154.byte hlo8(foo) 155 156; CHECK: R_AVR_DIFF8 157.byte foo - bar 158 159; CHECK: R_AVR_DIFF16 160.short foo - bar 161 162; CHECK: R_AVR_DIFF32 163.long foo - bar 164