about summary refs log tree commit diff
path: root/compiler/rustc_target/src/asm
AgeCommit message (Collapse)AuthorLines
2023-10-21update the registers of cskydirreke-3/+3
2023-08-14add details for csky-unknown-linux-gnuabiv2 and add docsDirreke-31/+17
2023-08-14add a csky-unknown-linux-gnuabiv2 targetDirreke-0/+166
2023-07-18support for mips32r6 as a target_arch valuechenx97-1/+1
2023-07-18merge patternschenx97-2/+1
2023-07-18support for mips64r6 as a target_arch valuechenx97-0/+1
2023-05-12asm: loongarch64: Drop efiapiWANG Rui-2/+2
2023-05-08Simplify match statement since variable arch that is predictableWANG Rui-5/+4
2023-05-05asm: loongarch64: Implementation of clobber_abiWANG Rui-0/+20
2023-04-25Add loongarch64 asm! supportzhaixiaojuan-0/+157
2023-04-12Add inline assembly support for m68kIan Douglas Scott-0/+105
2023-03-01Use FxIndexSet instead of FxHashSet for asm_target_features query.Michael Woerister-25/+26
2023-01-14Fix some missed double spaces.André Vennberg-1/+1
2023-01-05Fix `uninlined_format_args` for some compiler cratesnils-24/+24
Convert all the crates that have had their diagnostic migration completed (except save_analysis because that will be deleted soon and apfloat because of the licensing problem).
2022-07-20Remove unused StableMap and StableSet types from rustc_data_structuresMichael Woerister-4/+4
2022-07-08Collapse some weirdly-wrapping derivesMichael Goulet-48/+8
2022-06-18rustc_target: Remove some redundant target propertiesVadim Petrochenkov-1/+1
2022-05-17Add ABI clobbersConnor Horman-0/+2
2022-05-16Add tmm_reg clobbersConnor Horman-0/+13
2022-04-25Remove references to git.ioEric Huss-1/+2
2022-04-19asm: Add a kreg0 register class on x86 which includes k0Amanieu d'Antras-8/+9
Previously we only exposed a kreg register class which excludes the k0 register since it can't be used in many instructions. However k0 is a valid register and we need to have a way of marking it as clobbered for clobber_abi. Fixes #94977
2022-03-22Fold aarch64 feature +fp into +neonJubilee Young-1/+1
Arm's FEAT_FP and Feat_AdvSIMD describe the same thing on AArch64: The Neon unit, which handles both floating point and SIMD instructions. Moreover, a configuration for AArch64 must include both or neither. Arm says "entirely proprietary" toolchains may omit floating point: https://developer.arm.com/documentation/102374/0101/Data-processing---floating-point In the Programmer's Guide for Armv8-A, Arm says AArch64 can have both FP and Neon or neither in custom implementations: https://developer.arm.com/documentation/den0024/a/AArch64-Floating-point-and-NEON In "Bare metal boot code for Armv8-A", enabling Neon and FP is just disabling the same trap flag: https://developer.arm.com/documentation/dai0527/a In an unlikely future where "Neon and FP" become unrelated, we can add "[+-]fp" as its own feature flag. Until then, we can simplify programming with Rust on AArch64 by folding both into "[+-]neon", which is valid as it supersets both. "[+-]neon" is retained for niche uses such as firmware, kernels, "I just hate floats", and so on.
2022-02-24ARM: Only allow using d16-d31 with asm! when supported by the targetAmanieu d'Antras-1/+4
Support can be determined by checking for the "d32" LLVM feature.
2022-02-21Add testsAmanieu d'Antras-2/+2
2022-02-21Take CodegenFnAttrs into account when validating asm! register operandsAmanieu d'Antras-120/+94
Checking of asm! register operands now properly takes function attributes such as #[target_feature] and #[instruction_set] into account.
2022-02-21On ARM, use relocation_model to detect whether r9 should be reservedAmanieu d'Antras-44/+58
The previous approach of checking for the reserve-r9 target feature didn't actually work because LLVM only sets this feature very late when initializing the per-function subtarget.
2022-02-21Simplify gating of BPF w registers behind the alu32 target featureAmanieu d'Antras-26/+12
This is already handled by supported_types().
2022-02-18asm: Allow the use of r8-r14 as clobbers on Thumb1Amanieu d'Antras-41/+91
Previously these were entirely disallowed, except for r11 which was allowed by accident.
2022-01-31Rollup merge of #90277 - pierwill:fix-70258-inference-terms, r=jackh726Matthias Krüger-1/+1
Improve terminology around "after typeck" Closes #70258.
2022-01-22Add preliminary support for inline assembly for msp430.William D. Jones-0/+106
2022-01-17Pass target_features set instead of has_feature closurebjorn3-54/+59
This avoids unnecessary monomorphizations in codegen backends
2022-01-17Use Symbol for target features in asm handlingbjorn3-49/+62
This saves a couple of Symbol::intern calls
2021-12-15Remove unnecessary sigils around `Symbol::as_str()` calls.Nicholas Nethercote-14/+14
2021-12-10asm: Allow using r9 (ARM) and x18 (AArch64) if they are not reserved byAmanieu d'Antras-8/+65
the current target.
2021-12-07Remove the reg_thumb register class for asm! on ARMAmanieu d'Antras-13/+24
Also restricts r8-r14 from being used on Thumb1 targets as per #90736.
2021-12-06Implement inline asm! for AVR platformAndrew Dona-Couch-0/+221
2021-11-10Update more rustc/libtest things for wasm64Alex Crichton-3/+7
* Add wasm64 variants for inline assembly along the same lines as wasm32 * Update a few directives in libtest to check for `target_family` instead of `target_arch` * Update some rustc codegen and typechecks specialized for wasm32 to also work for wasm64.
2021-11-06Improve terminology around "after typeck"pierwill-1/+1
2021-09-01Rollup merge of #88350 - programmerjake:add-ppc-cr-xer-clobbers, r=AmanieuMara Bos-10/+61
add support for clobbering xer, cr, and cr[0-7] for asm! on OpenPower/PowerPC Fixes #88315
2021-08-28Auto merge of #88245 - Sl1mb0:s390-asm, r=Amanieubors-0/+131
S390x inline asm This adds register definitions and constraint codes for the s390x general and floating point registers necessary for fixing #85931; as well as a few tests. Further testing is needed, but I am a little unsure of what specific tests should be added to `src/test/assembly/asm/s390x.rs` to address this.
2021-08-25add support for clobbering xer, cr, and cr[0-7] for asm! on OpenPower/PowerPCJacob Lifshay-10/+61
Fixes #88315
2021-08-23Fix: made suggested changelinux1-1/+1
2021-08-23Refactor: disabled frame pointer; consolidated unsupported register errors; ↵linux1-68/+18
added register prefix
2021-08-22Fix: appeased x.py test tidy --blesslinux1-6/+6
2021-08-22Feat: further testing & support for i64 general register uselinux1-1/+1
2021-08-22Feat: added s390x reg-definitions, constraint codes, and testslinux1-26/+26
2021-08-22Feat: added inline asm support for s390xlinux1-0/+181
2021-08-22Fix typos “a”→“an”Frank Steffahn-1/+1
2021-08-12Add support for clobber_abi to asm!Amanieu d'Antras-0/+182
2021-07-11Auto merge of #86416 - Amanieu:asm_clobber_only, r=nagisabors-36/+116
Add clobber-only register classes for asm! These are needed to properly express a function call ABI using a clobber list, even though we don't support passing actual values into/out of these registers.