diff options
| author | Julian Frimmel <julian@fri-me.de> | 2024-11-02 08:25:53 +0100 |
|---|---|---|
| committer | Julian Frimmel <julian@fri-me.de> | 2024-11-28 16:12:04 +0100 |
| commit | 2bd3bbb2e0132d6d9c3766f35c2efc34414a8a66 (patch) | |
| tree | 6f9d90ff77c3dbc6d5f0d6dfb3972ea5284772ab /tests/codegen/asm | |
| parent | d7e0a3eee0c5e79134664293eea3c46b91f0bec7 (diff) | |
| download | rust-2bd3bbb2e0132d6d9c3766f35c2efc34414a8a66.tar.gz rust-2bd3bbb2e0132d6d9c3766f35c2efc34414a8a66.zip | |
Move & rename test case to match naming of #132456
Diffstat (limited to 'tests/codegen/asm')
| -rw-r--r-- | tests/codegen/asm/avr-clobbers.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/codegen/asm/avr-clobbers.rs b/tests/codegen/asm/avr-clobbers.rs new file mode 100644 index 00000000000..6e0c75368e2 --- /dev/null +++ b/tests/codegen/asm/avr-clobbers.rs @@ -0,0 +1,43 @@ +//@ assembly-output: emit-asm +//@ compile-flags: --target avr-unknown-gnu-atmega328 +//@ needs-llvm-components: avr + +#![crate_type = "rlib"] +#![feature(no_core, rustc_attrs, lang_items, asm_experimental_arch)] +#![no_core] + +#[lang = "sized"] +trait Sized {} + +#[rustc_builtin_macro] +macro_rules! asm { + () => {}; +} + +// CHECK-LABEL: @sreg_is_clobbered +// CHECK: void asm sideeffect "", "~{sreg}"() +#[no_mangle] +pub unsafe fn sreg_is_clobbered() { + asm!("", options(nostack, nomem)); +} + +// CHECK-LABEL: @sreg_is_not_clobbered_if_preserve_flags_is_used +// CHECK: void asm sideeffect "", ""() +#[no_mangle] +pub unsafe fn sreg_is_not_clobbered_if_preserve_flags_is_used() { + asm!("", options(nostack, nomem, preserves_flags)); +} + +// CHECK-LABEL: @clobber_abi +// CHECK: asm sideeffect "", "={r18},={r19},={r20},={r21},={r22},={r23},={r24},={r25},={r26},={r27},={r30},={r31},~{sreg}"() +#[no_mangle] +pub unsafe fn clobber_abi() { + asm!("", clobber_abi("C"), options(nostack, nomem)); +} + +// CHECK-LABEL: @clobber_abi_with_preserved_flags +// CHECK: asm sideeffect "", "={r18},={r19},={r20},={r21},={r22},={r23},={r24},={r25},={r26},={r27},={r30},={r31}"() +#[no_mangle] +pub unsafe fn clobber_abi_with_preserved_flags() { + asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags)); +} |
