]>
Commit | Line | Data |
---|---|---|
c30ab7b3 SL |
1 | // Targets the Cortex-M4 and Cortex-M7 processors (ARMv7E-M) |
2 | // | |
3 | // This target assumes that the device doesn't have a FPU (Floating Point Unit) and lowers all the | |
4 | // floating point operations to software routines (intrinsics). | |
5 | // | |
6 | // As such, this target uses the "soft" calling convention (ABI) where floating point values are | |
7 | // passed to/from subroutines via general purpose registers (R0, R1, etc.). | |
8 | // | |
9 | // To opt-in to hardware accelerated floating point operations, you can use, for example, | |
10 | // `-C target-feature=+vfp4` or `-C target-cpu=cortex-m4`. | |
11 | ||
29967ef6 | 12 | use crate::spec::{Target, TargetOptions}; |
c30ab7b3 | 13 | |
29967ef6 XL |
14 | pub fn target() -> Target { |
15 | Target { | |
5e7ed085 | 16 | llvm_target: "thumbv7em-none-eabi".into(), |
29967ef6 | 17 | pointer_width: 32, |
5e7ed085 FG |
18 | data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), |
19 | arch: "arm".into(), | |
c30ab7b3 | 20 | |
136023e0 | 21 | options: TargetOptions { |
5e7ed085 | 22 | abi: "eabi".into(), |
136023e0 XL |
23 | max_atomic_width: Some(32), |
24 | ..super::thumb_base::opts() | |
25 | }, | |
29967ef6 | 26 | } |
c30ab7b3 | 27 | } |