1488a62f8SBen Shi# REQUIRES: avr 2488a62f8SBen Shi 3488a62f8SBen Shi# RUN: rm -rf %t && split-file %s %t && cd %t 4488a62f8SBen Shi 5488a62f8SBen Shi# RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 avr-pcrel-7.s -o avr-pcrel-7.o 6*5ae85676SAyke# RUN: not ld.lld avr-pcrel-7.o -o /dev/null -Ttext=0x1000 --defsym=callee0=0x1040 --defsym=callee1=0x1084 --defsym=callee2=0x100f 2>&1 | \ 7488a62f8SBen Shi# RUN: FileCheck %s --check-prefix=PCREL7 8488a62f8SBen Shi# RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 avr-pcrel-13.s -o avr-pcrel-13.o 9488a62f8SBen Shi# RUN: not ld.lld avr-pcrel-13.o -o /dev/null -Ttext=0x1000 --defsym=callee0=0x2000 --defsym=callee1=0x2004 --defsym=callee2=0x100f 2>&1 | \ 10488a62f8SBen Shi# RUN: FileCheck %s --check-prefix=PCREL13 11488a62f8SBen Shi# RUN: llvm-mc -filetype=obj -triple=avr -mcpu=atmega328 avr-abs.s -o avr-abs.o 12488a62f8SBen Shi# RUN: not ld.lld avr-abs.o -o /dev/null -Ttext=0x1000 --defsym=callee0=0x1009 --defsym=callee1=0x1010 2>&1 | \ 13488a62f8SBen Shi# RUN: FileCheck %s --check-prefix=ABS 14488a62f8SBen Shi 15488a62f8SBen Shi#--- avr-pcrel-7.s 16488a62f8SBen Shi 17488a62f8SBen Shi.section .LDI,"ax",@progbits 18488a62f8SBen Shi 19488a62f8SBen Shi.globl __start 20488a62f8SBen Shi__start: 21488a62f8SBen Shi 22488a62f8SBen Shi# PCREL7-NOT: callee0 23*5ae85676SAyke# PCREL7: error: {{.*}} relocation R_AVR_7_PCREL out of range: {{.*}} is not in [-128, 127]; references 'callee1' 24488a62f8SBen Shi# PCREL7: error: {{.*}} improper alignment for relocation R_AVR_7_PCREL: {{.*}} is not aligned to 2 bytes 25488a62f8SBen Shibrne callee0 26488a62f8SBen Shibreq callee1 27488a62f8SBen Shibrlt callee2 28488a62f8SBen Shi 29488a62f8SBen Shi#--- avr-pcrel-13.s 30488a62f8SBen Shi 31488a62f8SBen Shi.section .LDI,"ax",@progbits 32488a62f8SBen Shi 33488a62f8SBen Shi.globl __start 34488a62f8SBen Shi__start: 35488a62f8SBen Shi 36488a62f8SBen Shi# PCREL13-NOT: callee0 37488a62f8SBen Shi# PCREL13: error: {{.*}} improper alignment for relocation R_AVR_13_PCREL: {{.*}} is not aligned to 2 bytes 38488a62f8SBen Shirjmp callee0 39488a62f8SBen Shircall callee1 40488a62f8SBen Shirjmp callee2 41488a62f8SBen Shi 42488a62f8SBen Shi#--- avr-abs.s 43488a62f8SBen Shi 44488a62f8SBen Shi.section .LDI,"ax",@progbits 45488a62f8SBen Shi 46488a62f8SBen Shi.globl __start 47488a62f8SBen Shi__start: 48488a62f8SBen Shi 49488a62f8SBen Shi# ABS: error: {{.*}} improper alignment for relocation R_AVR_CALL: 0x1009 is not aligned to 2 bytes 50488a62f8SBen Shi# ABS-NOT: 0x1010 51488a62f8SBen Shicall callee0 52488a62f8SBen Shijmp callee1 53