1# REQUIRES: avr 2 3# RUN: rm -rf %t && split-file %s %t && cd %t 4 5# RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 avr-pcrel-7.s -o avr-pcrel-7.o 6# RUN: not ld.lld avr-pcrel-7.o -o /dev/null -Ttext=0x1000 --defsym=callee0=0x1040 --defsym=callee1=0x1084 --defsym=callee2=0x100f 2>&1 | \ 7# RUN: FileCheck %s --check-prefix=PCREL7 8# RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 avr-pcrel-13.s -o avr-pcrel-13.o 9# RUN: not ld.lld avr-pcrel-13.o -o /dev/null -Ttext=0x1000 --defsym=callee0=0x2000 --defsym=callee1=0x2004 --defsym=callee2=0x100f 2>&1 | \ 10# RUN: FileCheck %s --check-prefix=PCREL13 11# RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 avr-abs.s -o avr-abs.o 12# RUN: not ld.lld avr-abs.o -o /dev/null -Ttext=0x1000 --defsym=callee0=0x1009 --defsym=callee1=0x1010 2>&1 | \ 13# RUN: FileCheck %s --check-prefix=ABS 14 15#--- avr-pcrel-7.s 16 17.section .LDI,"ax",@progbits 18 19.globl __start 20__start: 21 22# PCREL7-NOT: callee0 23# PCREL7: error: {{.*}} relocation R_AVR_7_PCREL out of range: {{.*}} is not in [-128, 127]; references 'callee1' 24# PCREL7: error: {{.*}} improper alignment for relocation R_AVR_7_PCREL: {{.*}} is not aligned to 2 bytes 25brne callee0 26breq callee1 27brlt callee2 28 29#--- avr-pcrel-13.s 30 31.section .LDI,"ax",@progbits 32 33.globl __start 34__start: 35 36# PCREL13-NOT: callee0 37# PCREL13: error: {{.*}} improper alignment for relocation R_AVR_13_PCREL: {{.*}} is not aligned to 2 bytes 38rjmp callee0 39rcall callee1 40rjmp callee2 41 42#--- avr-abs.s 43 44.section .LDI,"ax",@progbits 45 46.globl __start 47__start: 48 49# ABS: error: {{.*}} improper alignment for relocation R_AVR_CALL: 0x1009 is not aligned to 2 bytes 50# ABS-NOT: 0x1010 51call callee0 52jmp callee1 53