summary refs log tree commit diff
path: root/compiler/rustc_ast_lowering/src/asm.rs
AgeCommit message (Collapse)AuthorLines
2022-06-14Separate `source_span` and `expn_that_defined` from `Definitions`.Camille GILLOT-8/+2
2022-06-14Do not modify the resolver outputs.Camille GILLOT-1/+1
2022-06-14Make ResolverAstLowering a struct.Camille GILLOT-2/+2
2022-05-20Remove `crate` visibility usage in compilerJacob Pratt-1/+5
2022-04-14Reimplement lowering of sym operands for asm! so that it also works with ↵Amanieu d'Antras-5/+60
global_asm!
2022-02-21Take CodegenFnAttrs into account when validating asm! register operandsAmanieu d'Antras-21/+7
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-0/+2
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-20Rollup merge of #94146 - est31:let_else, r=cjgillotMatthias Krüger-3/+2
Adopt let else in more places Continuation of #89933, #91018, #91481, #93046, #93590, #94011. I have extended my clippy lint to also recognize tuple passing and match statements. The diff caused by fixing it is way above 1 thousand lines. Thus, I split it up into multiple pull requests to make reviewing easier. This is the biggest of these PRs and handles the changes outside of rustdoc, rustc_typeck, rustc_const_eval, rustc_trait_selection, which were handled in PRs #94139, #94142, #94143, #94144.
2022-02-19Adopt let else in more placesest31-3/+2
2022-02-18asm: Allow the use of r8-r14 as clobbers on Thumb1Amanieu d'Antras-5/+6
Previously these were entirely disallowed, except for r11 which was allowed by accident.
2022-02-10Fix incorrect register conflict detection in asm!Amanieu d'Antras-1/+3
This would previously incorrectly reject two subregisters that were distinct but part of the same larger register, for example `al` and `ah`.
2022-01-17Pass target_features set instead of has_feature closurebjorn3-2/+2
This avoids unnecessary monomorphizations in codegen backends
2022-01-17Use Symbol for target features in asm handlingbjorn3-3/+3
This saves a couple of Symbol::intern calls
2021-12-10asm: Allow using r9 (ARM) and x18 (AArch64) if they are not reserved byAmanieu d'Antras-1/+6
the current target.
2021-12-03add `unwind_asm` feature gate for `may_unwind` optioncynecx-0/+11
2021-11-10Add support for specifying multiple clobber_abi in `asm!`asquared31415-7/+40
Allow multiple clobber_abi in asm Update docs Fix aarch64 test Combine abis Emit duplicate ABI error, empty ABI list error multiple clobber_abi
2021-11-07Add features gates for experimental asm featuresAmanieu d'Antras-4/+46
2021-10-26Remove unnecessary check for registersYuki Okushi-3/+1
`is_clobber()` already checks if `reg` is a register and the both values should be the same.
2021-10-26Fix some typosYuki Okushi-2/+2
2021-10-07make #[target_feature] work with `asm` register classesasquared31415-62/+2
2021-08-29ast_lowering: Introduce `lower_span` for catching all spans entering HIRVadim Petrochenkov-4/+9
2021-08-24Move `named_asm_labels` to a HIR lintasquared31415-1/+3
2021-08-12Add support for clobber_abi to asm!Amanieu d'Antras-1/+55
2021-07-10Add clobber-only register classes for asm!Amanieu d'Antras-0/+16
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.
2021-05-13Clarify error message when both asm! and global_asm! are unsupportedAmanieu d'Antras-1/+2
2021-05-13Add support for const operands and options to global_asm!Amanieu d'Antras-0/+328
On x86, the default syntax is also switched to Intel to match asm!