aboutsummaryrefslogtreecommitdiff
path: root/test/ELF/msp430.s
diff options
context:
space:
mode:
authorYi Kong <yikong@google.com>2019-02-27 14:18:31 -0800
committerYi Kong <yikong@google.com>2019-02-27 14:18:31 -0800
commit35c021c49f44cd4e06875c4b1398a2b3464132bb (patch)
tree972f829a5ed4f0e4a14f0a713b49a8f0db93a26f /test/ELF/msp430.s
parent958317e226bf38ef5e647d0b056e8e95eb472c70 (diff)
parent14aa57da0f92683f0b8bdac0acda485a6f73edc7 (diff)
downloadlld-35c021c49f44cd4e06875c4b1398a2b3464132bb.tar.gz
Merge 14aa57da0 for LLVM update to 353983
Change-Id: Iee1792355bab030d81eb4cb645257dbac2537641
Diffstat (limited to 'test/ELF/msp430.s')
-rw-r--r--test/ELF/msp430.s43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/ELF/msp430.s b/test/ELF/msp430.s
new file mode 100644
index 000000000..96820acbc
--- /dev/null
+++ b/test/ELF/msp430.s
@@ -0,0 +1,43 @@
+; REQUIRES: msp430
+; RUN: llvm-mc -filetype=obj -triple=msp430-elf -o %t1.o %s
+; RUN: echo -e '.global _start\n _start: nop' | llvm-mc -filetype=obj -triple=msp430-elf -o %t2.o -
+; RUN: ld.lld -o %t.exe --Tdata=0x2000 --Ttext=0x8000 --defsym=_byte=0x21 %t2.o %t1.o
+; RUN: llvm-objdump -s -d %t.exe | 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
+
+; RUN: od -x %t.exe | FileCheck -check-prefix=TRAP %s
+; TRAP: 4343 4343 4343 4343 4343 4343 4343 4343