summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/test/ELF/msp430.s40
1 files changed, 40 insertions, 0 deletions
diff --git a/lld/test/ELF/msp430.s b/lld/test/ELF/msp430.s
new file mode 100644
index 00000000000..2d063696282
--- /dev/null
+++ b/lld/test/ELF/msp430.s
@@ -0,0 +1,40 @@
+; REQUIRES: msp430
+; RUN: llvm-mc -filetype=obj -triple=msp430-elf %s -o %t
+; RUN: llvm-mc -filetype=obj -triple=msp430-elf %S/Inputs/msp430.s -o %t2
+; RUN: ld.lld --Tdata=0x2000 --Ttext=0x8000 --defsym=_byte=0x21 %t2 %t -o %t3
+; RUN: llvm-objdump -s -d %t3 | FileCheck %s
+
+;; Check handling of basic msp430 relocation types.
+
+ .text
+ .global foo
+foo:
+;; R_MSP430_10_PCREL
+ jmp _start
+
+; CHECK: Disassembly of section .text:
+; CHECK-NEXT: _start:
+; CHECK-NEXT: 8000: {{.*}} nop
+; CHECK: foo:
+; CHECK-NEXT: 8004: {{.*}} jmp $-4
+
+;; R_MSP430_16_BYTE
+ call #_start
+
+; CHECK: call #32768
+
+;; R_MSP430_16_PCREL_BYTE
+ mov #-1, _start
+
+; CHECK: 800a: {{.*}} mov #-1, -12
+
+ .data
+;; R_MSP430_8
+ .byte _byte
+;; R_MSP430_16
+ .word _start
+;; R_MSP430_32
+ .long _start
+
+; CHECK: Contents of section .data:
+; CHECK-NEXT: 2000 21008000 800000
OpenPOWER on IntegriCloud