File tree Expand file tree Collapse file tree 3 files changed +58
-2
lines changed
crates/core_arch/src/acle/registers Expand file tree Collapse file tree 3 files changed +58
-2
lines changed Original file line number Diff line number Diff line change @@ -64,6 +64,24 @@ matrix:
6464 env : TARGET=thumbv7em-none-eabi NORUN=1 NOSTD=1 NO_DOCKER=1
6565 - name : " thumbv7em-none-eabihf - build libcore only"
6666 env : TARGET=thumbv7em-none-eabihf NORUN=1 NOSTD=1 NO_DOCKER=1
67+ - name : " Game Boy Advance - build libcore only"
68+ env : NORUN=1 NOSTD=1 NO_DOCKER=1
69+ install : cargo install xargo
70+ script :
71+ # Obtain the devkitPro tools, using `target/` as a temp directory. This
72+ # is required because we need to use their linker. `lld` uses the `BLX`
73+ # instruction, which was not available in thumb state code until ARMv5.
74+ - mkdir -p target
75+ - cd target
76+ - wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
77+ - sudo dpkg -i devkitpro-pacman.deb
78+ - sudo dkp-pacman -Sy
79+ - sudo dkp-pacman -Syu
80+ - sudo dkp-pacman -S -v --noconfirm gba-tools devkitARM
81+ - export PATH="$PATH:/opt/devkitpro/devkitARM/bin"
82+ - export PATH="$PATH:/opt/devkitpro/tools/bin"
83+ - cd ..
84+ - xargo build --all --target=ci/gba.json
6785 - name : " Documentation"
6886 install : true
6987 script : ci/dox.sh
Original file line number Diff line number Diff line change 1+ {
2+ "abi-blacklist" : [
3+ " stdcall" ,
4+ " fastcall" ,
5+ " vectorcall" ,
6+ " thiscall" ,
7+ " win64" ,
8+ " sysv64"
9+ ],
10+ "arch" : " arm" ,
11+ "atomic-cas" : false ,
12+ "cpu" : " arm7tdmi" ,
13+ "data-layout" : " e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" ,
14+ "emit-debug-gdb-scripts" : false ,
15+ "env" : " agb" ,
16+ "executables" : true ,
17+ "features" : " +soft-float,+strict-align" ,
18+ "linker" : " arm-none-eabi-ld" ,
19+ "linker-flavor" : " ld" ,
20+ "linker-is-gnu" : true ,
21+ "llvm-target" : " thumbv4-none-agb" ,
22+ "os" : " none" ,
23+ "panic-strategy" : " abort" ,
24+ "pre-link-args" : {
25+ "ld" : [
26+ " -Tlinker.ld"
27+ ]
28+ },
29+ "relocation-model" : " static" ,
30+ "target-c-int-width" : " 32" ,
31+ "target-endian" : " little" ,
32+ "target-pointer-width" : " 32" ,
33+ "vendor" : " nintendo"
34+ }
Original file line number Diff line number Diff line change 11/// Application Program Status Register
22pub struct APSR ;
33
4- #[ cfg( any( not( target_feature = "thumb-mode" ) , target_feature = "v6t2" ) ) ]
5- rsr ! ( APSR ) ;
4+ // Note (@Lokathor): Because this breaks the use of Rust on the Game Boy
5+ // Advance, this change must be reverted until Rust learns to handle cpu state
6+ // properly. See also: https://github.com/rust-lang-nursery/stdsimd/issues/702
7+
8+ //#[cfg(any(not(target_feature = "thumb-state"), target_feature = "v6t2"))]
9+ //rsr!(APSR);
You can’t perform that action at this time.
0 commit comments