about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-08-29 04:18:22 +0000
committerbors <bors@rust-lang.org>2020-08-29 04:18:22 +0000
commit17fb1254b8f085c0787cc8f11ac466fcc2d8c488 (patch)
treeb6cd90c76d4d6335e893014129fa951214d399c0
parent360a372f2ca809a844915b2d80299d96cf90ae9a (diff)
parent9ae5e95b28be59a67bee4236fba06dbc0cfe8552 (diff)
Auto merge of #75939 - Amanieu:fix_asm2, r=nagisa
Fix a typo in #75781
-rw-r--r--src/librustc_codegen_llvm/asm.rs2
-rw-r--r--src/test/assembly/asm/aarch64-types.rs16
2 files changed, 12 insertions, 6 deletions
diff --git a/src/librustc_codegen_llvm/asm.rs b/src/librustc_codegen_llvm/asm.rs
index 4fef94dde5f..a468d09c2d9 100644
--- a/src/librustc_codegen_llvm/asm.rs
+++ b/src/librustc_codegen_llvm/asm.rs
@@ -485,7 +485,7 @@ fn reg_to_llvm(reg: InlineAsmRegOrRegClass, layout: Option<&TyAndLayout<'tcx>>)
                 format!("{{{}{}}}", class, idx)
             } else if reg == InlineAsmReg::AArch64(AArch64InlineAsmReg::x30) {
                 // LLVM doesn't recognize x30
-                "lr".to_string()
+                "{lr}".to_string()
             } else {
                 format!("{{{}}}", reg.name())
             }
diff --git a/src/test/assembly/asm/aarch64-types.rs b/src/test/assembly/asm/aarch64-types.rs
index e39f74c916c..8dd1f3c873f 100644
--- a/src/test/assembly/asm/aarch64-types.rs
+++ b/src/test/assembly/asm/aarch64-types.rs
@@ -96,6 +96,17 @@ pub unsafe fn sym_static() {
     asm!("adr x0, {}", sym extern_static);
 }
 
+// Regression test for #75761
+// CHECK-LABEL: issue_75761:
+// CHECK: str {{.*}}x30
+// CHECK: //APP
+// CHECK: //NO_APP
+// CHECK: ldr {{.*}}x30
+#[no_mangle]
+pub unsafe fn issue_75761() {
+    asm!("", out("v0") _, out("x30") _);
+}
+
 macro_rules! check {
     ($func:ident $ty:ident $class:ident $mov:literal $modifier:literal) => {
         #[no_mangle]
@@ -553,8 +564,3 @@ check_reg!(v0_f32x4 f32x4 "s0" "fmov");
 // CHECK: fmov s0, s0
 // CHECK: //NO_APP
 check_reg!(v0_f64x2 f64x2 "s0" "fmov");
-
-// Regression test for #75761
-pub unsafe fn issue_75761() {
-    asm!("", out("v0") _, out("x30") _);
-}