99 lines · plain
1; REQUIRES: avr2; RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328p %s -o %t0.o3; RUN: ld.lld %t0.o --defsym=a=0x12345678 --defsym=b=30 --defsym=c=0x15554 -o %t04; RUN: llvm-objdump -d --print-imm-hex --mcpu=atmega328p %t0 | \5; RUN: FileCheck --check-prefixes=CHECK,AVR %s6; RUN: llvm-objdump -s --mcpu=atmega328p %t0 | \7; RUN: FileCheck --check-prefixes=HEX,AVRHEX %s8; RUN: llvm-mc -filetype=obj -triple=avr -mcpu=attiny10 %s --defsym=TINY=1 -o %t1.o9; RUN: ld.lld %t1.o --defsym=a=0x12345678 --defsym=b=30 --defsym=c=0x15554 -o %t110; RUN: llvm-objdump -d --print-imm-hex --mcpu=attiny10 %t1 | FileCheck %s11; RUN: llvm-objdump -s --mcpu=attiny10 %t1 | \12; RUN: FileCheck --check-prefixes=HEX,TINYHEX %s13 14.section .LDI,"ax",@progbits15; CHECK-LABEL: section .LDI:16; CHECK: ldi r20, 0x7817; CHECK-NEXT: ldi r20, 0x5618; CHECK-NEXT: ldi r20, 0x3419; CHECK-NEXT: ldi r20, 0x1220; CHECK-NEXT: ldi r20, 0x3c21; CHECK-NEXT: ldi r20, 0x2b22; CHECK-NEXT: ldi r20, 0x1a23; CHECK-NEXT: ldi r20, 0xaa24; CHECK-NEXT: ldi r20, 0xaa25; CHECK-NEXT: ldi r20, 0xff26 27ldi r20, lo8(a) ; R_AVR_LO8_LDI28ldi r20, hi8(a) ; R_AVR_HI8_LDI29ldi r20, hh8(a) ; R_AVR_HH8_LDI30ldi r20, hhi8(a) ; R_AVR_MS8_LDI31 32ldi r20, pm_lo8(a) ; R_AVR_LO8_LDI_PM33ldi r20, pm_hi8(a) ; R_AVR_HI8_LDI_PM34ldi r20, pm_hh8(a) ; R_AVR_HH8_LDI_PM35 36ldi r20, lo8_gs(c) ; R_AVR_LO8_LDI_GS37ldi r20, hi8_gs(c) ; R_AVR_HI8_LDI_GS38 39ldi r20, b+22540 41.section .LDI_NEG,"ax",@progbits42; CHECK-LABEL: section .LDI_NEG:43; CHECK: ldi r20, 0x8844; CHECK-NEXT: ldi r20, 0xa945; CHECK-NEXT: ldi r20, 0xcb46; CHECK-NEXT: ldi r20, 0xed47; CHECK-NEXT: ldi r20, 0xc448; CHECK-NEXT: ldi r20, 0xd449; CHECK-NEXT: ldi r20, 0xe550ldi r20, lo8(-(a)) ; R_AVR_LO8_LDI_NEG51ldi r20, hi8(-(a)) ; R_AVR_HI8_LDI_NEG52ldi r20, hh8(-(a)) ; R_AVR_HH8_LDI_NEG53ldi r20, hhi8(-(a)) ; R_AVR_MS8_LDI_NEG54 55ldi r20, pm_lo8(-(a)) ; R_AVR_LO8_LDI_PM_NEG56ldi r20, pm_hi8(-(a)) ; R_AVR_HI8_LDI_PM_NEG57ldi r20, pm_hh8(-(a)) ; R_AVR_HH8_LDI_PM_NEG58 59.ifndef TINY60.section .SIX,"ax",@progbits61; AVR-LABEL: section .SIX:62; AVR: std Y+30, r963; AVR-NEXT: ldd r9, Y+3064; AVR-NEXT: adiw r24, 0x1e65; AVRHEX-LABEL: section .SIX:66; AVRHEX-NEXT: 9e8e9e8c 4e9667std Y+b, r9 ; R_AVR_668ldd r9, Y+b ; R_AVR_669adiw r24, b ; R_AVR_6_ADIW70.endif71 72.section .PORT,"ax",@progbits73; CHECK-LABEL: section .PORT:74; CHECK: in r20, 0x1e75; CHECK-NEXT: sbic 0x1e, 0x176in r20, b ; R_AVR_PORT677sbic b, 1 ; R_AVR_PORT578 79.section .LDSSTS,"ax",@progbits80; CHECK-LABEL: section .LDSSTS:81; CHECK: lds r20, 0x1e82; CHECK-NEXT: sts 0x1e, r2183; HEX-LABEL: section .LDSSTS:84; AVRHEX: {{.*}} 40911e00 50931e0085; TINYHEX: {{.*}} 4ea15ea986lds r20, b87sts b, r2188 89.section .DATA,"ax",@progbits90; HEX-LABEL: section .DATA:91; HEX-NEXT: {{.*}} 1e1e000f 00785634 1278563492.byte b ; R_AVR_893.short b ; R_AVR_1694.short gs(b) ; R_AVR_16_PM95.long a ; R_AVR_3296.byte lo8(a) ; R_AVR_8_LO897.byte hi8(a) ; R_AVR_8_HI898.byte hlo8(a) ; R_AVR_8_HLO899