diff options
| author | bors <bors@rust-lang.org> | 2016-11-15 01:27:47 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-11-15 01:27:47 -0800 |
| commit | c8867f8b46d804b463acc25e1ce31717ae5a4103 (patch) | |
| tree | 5dc1f06b0f6b9ce44c67ff6e6fd2ce56518c2835 /src/test/run-pass/thinlto | |
| parent | 0ed951993fb5721a303ca5fa743543dd9f3f6b10 (diff) | |
| parent | 80ca1e1251b634b8b9831aa999f3f7435ccfdd16 (diff) | |
| download | rust-c8867f8b46d804b463acc25e1ce31717ae5a4103.tar.gz rust-c8867f8b46d804b463acc25e1ce31717ae5a4103.zip | |
Auto merge of #37672 - japaric:msp430, r=alexcrichton
enable the MSP430 LLVM backend
to let people experiment with this target out of tree.
The MSP430 architecture is used in 16-bit microcontrollers commonly used
in Digital Signal Processing applications.
---
How this was tested:
Declaring a custom target with the following specification:
``` json
{
"arch": "msp430",
"data-layout": "e-m:e-p:16:16-i32:16:32-a:16-n8:16",
"executables": true,
"linker": "msp430-gcc",
"llvm-target": "msp430",
"max-atomic-width": 0,
"no-integrated-as": true,
"os": "none",
"panic-strategy": "abort",
"relocation-model": "static",
"target-endian": "little",
"target-pointer-width": "16"
}
```
And this minimal file:
``` rust
pub fn start() -> ! {
loop {}
}
trait Copy {}
trait Sized {}
```
Produces the following object files:
```
$ rustc --target=msp430 --emit=obj foo.rs
$ msp430-objdump -Cd foo.o
foo.o: file format elf32-msp430
Disassembly of section .text.start:
00000000 <start>:
0: 21 83 decd r1
2: 00 3c jmp $+2 ;abs 0x4
4: 00 3c jmp $+2 ;abs 0x6
6: ff 3f jmp $+0 ;abs 0x6
$ rustc --target=msp430 --emit=obj foo.rs -O
$ msp430-objdump -Cd foo.o
foo.o: file format elf32-msp430
Disassembly of section .text.start:
00000000 <start>:
0: ff 3f jmp $+0 ;abs 0x0
```
---
r? @alexcrichton
~~TODO get this working with Makefiles so nightly releases include this backend~~
~~TODO measure the increase in binary size~~ +187KiB (+0.47%)
~~FIXME --emit=obj produces empty object files~~
Diffstat (limited to 'src/test/run-pass/thinlto')
0 files changed, 0 insertions, 0 deletions
