[ARM64] Rename FP to the UAL-compliant 'X29'.
authorBradley Smith <bradley.smith@arm.com>
Wed, 9 Apr 2014 14:43:50 +0000 (14:43 +0000)
committerBradley Smith <bradley.smith@arm.com>
Wed, 9 Apr 2014 14:43:50 +0000 (14:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205884 91177308-0d34-0410-b5e6-96231b3b80d8

15 files changed:
lib/Target/ARM64/ARM64RegisterInfo.td
lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp
test/CodeGen/ARM64/abi.ll
test/CodeGen/ARM64/abi_align.ll
test/CodeGen/ARM64/fast-isel-alloca.ll
test/CodeGen/ARM64/fast-isel-call.ll
test/CodeGen/ARM64/frameaddr.ll
test/CodeGen/ARM64/hello.ll
test/CodeGen/ARM64/patchpoint.ll
test/CodeGen/ARM64/returnaddr.ll
test/MC/ARM64/elf-relocs.s
test/MC/ARM64/memory.s
test/MC/ARM64/simd-ldst.s
test/MC/ARM64/tls-relocs.s
test/MC/Disassembler/ARM64/memory.txt

index 96001c54ecb89c7019a1ac549372a9582576aabf..88093ff84d49268067f94fb185a0997ee9491ffe 100644 (file)
@@ -112,7 +112,7 @@ def X25   : ARM64Reg<25, "x25", [W25]>, DwarfRegAlias<W25>;
 def X26   : ARM64Reg<26, "x26", [W26]>, DwarfRegAlias<W26>;
 def X27   : ARM64Reg<27, "x27", [W27]>, DwarfRegAlias<W27>;
 def X28   : ARM64Reg<28, "x28", [W28]>, DwarfRegAlias<W28>;
-def FP    : ARM64Reg<29, "fp",  [W29]>, DwarfRegAlias<W29>;
+def FP    : ARM64Reg<29, "x29", [W29]>, DwarfRegAlias<W29>;
 def LR    : ARM64Reg<30, "lr",  [W30]>, DwarfRegAlias<W30>;
 def SP    : ARM64Reg<31, "sp",  [WSP]>, DwarfRegAlias<WSP>;
 def XZR   : ARM64Reg<31, "xzr", [WZR]>, DwarfRegAlias<WSP>;
index bff81761fb4b4d21eed67e4abbd7bc230cbe995b..88840883da84ad5b3c816a8ca971784a576564ec 100644 (file)
@@ -1871,7 +1871,7 @@ int ARM64AsmParser::tryParseRegister() {
   // Also handle a few aliases of registers.
   if (RegNum == 0)
     RegNum = StringSwitch<unsigned>(lowerCase)
-                 .Case("x29", ARM64::FP)
+                 .Case("fp",  ARM64::FP)
                  .Case("x30", ARM64::LR)
                  .Case("x31", ARM64::XZR)
                  .Case("w31", ARM64::WZR)
index a7693b6ba9e57440ec73d96d4bb5d57c3ed2c1d1..e2de434c7b07679d87a6488be81dc7e8dc025444 100644 (file)
@@ -77,6 +77,7 @@ entry:
 ; CHECK: fixed_4i
 ; CHECK: str [[REG_1:q[0-9]+]], [sp, #16]
 ; FAST: fixed_4i
+; FAST: sub sp, sp, #64
 ; FAST: mov x[[ADDR:[0-9]+]], sp
 ; FAST: str [[REG_1:q[0-9]+]], [x[[ADDR]], #16]
   %0 = load <4 x i32>* %in, align 16
@@ -130,6 +131,7 @@ entry:
 ; CHECK: test3
 ; CHECK: str [[REG_1:d[0-9]+]], [sp, #8]
 ; FAST: test3
+; FAST: sub sp, sp, #32
 ; FAST: mov x[[ADDR:[0-9]+]], sp
 ; FAST: str [[REG_1:d[0-9]+]], [x[[ADDR]], #8]
   %0 = load <2 x i32>* %in, align 8
index 61c661e48f82b3931eea9eda663dde1bfbb72fff..d8ec3958ba110ca5c39d724afd14e806f96fdf7f 100644 (file)
@@ -294,7 +294,7 @@ entry:
 ; FAST: sub sp, sp, #96
 ; Space for s1 is allocated at fp-24 = sp+72
 ; Space for s2 is allocated at sp+48
-; FAST: sub x[[A:[0-9]+]], fp, #24
+; FAST: sub x[[A:[0-9]+]], x29, #24
 ; FAST: add x[[A:[0-9]+]], sp, #48
 ; Call memcpy with size = 24 (0x18)
 ; FAST: orr {{x[0-9]+}}, xzr, #0x18
@@ -317,17 +317,17 @@ declare i32 @f42_stack(i32 %i, i32 %i2, i32 %i3, i32 %i4, i32 %i5, i32 %i6,
 define i32 @caller42_stack() #3 {
 entry:
 ; CHECK: caller42_stack
-; CHECK: mov fp, sp
+; CHECK: mov x29, sp
 ; CHECK: sub sp, sp, #96
-; CHECK: stur {{x[0-9]+}}, [fp, #-16]
-; CHECK: stur {{q[0-9]+}}, [fp, #-32]
+; CHECK: stur {{x[0-9]+}}, [x29, #-16]
+; CHECK: stur {{q[0-9]+}}, [x29, #-32]
 ; CHECK: str {{x[0-9]+}}, [sp, #48]
 ; CHECK: str {{q[0-9]+}}, [sp, #32]
-; Space for s1 is allocated at fp-32 = sp+64
+; Space for s1 is allocated at x29-32 = sp+64
 ; Space for s2 is allocated at sp+32
 ; CHECK: add x[[B:[0-9]+]], sp, #32
 ; CHECK: str x[[B]], [sp, #16]
-; CHECK: sub x[[A:[0-9]+]], fp, #32
+; CHECK: sub x[[A:[0-9]+]], x29, #32
 ; Address of s1 is passed on stack at sp+8
 ; CHECK: str x[[A]], [sp, #8]
 ; CHECK: movz w[[C:[0-9]+]], #9
@@ -336,8 +336,8 @@ entry:
 ; FAST: caller42_stack
 ; Space for s1 is allocated at fp-24
 ; Space for s2 is allocated at fp-48
-; FAST: sub x[[A:[0-9]+]], fp, #24
-; FAST: sub x[[B:[0-9]+]], fp, #48
+; FAST: sub x[[A:[0-9]+]], x29, #24
+; FAST: sub x[[B:[0-9]+]], x29, #48
 ; Call memcpy with size = 24 (0x18)
 ; FAST: orr {{x[0-9]+}}, xzr, #0x18
 ; FAST: str {{w[0-9]+}}, [sp]
@@ -399,7 +399,7 @@ entry:
 ; Space for s2 is allocated at sp
 
 ; FAST: caller43
-; FAST: mov fp, sp
+; FAST: mov x29, sp
 ; Space for s1 is allocated at sp+32
 ; Space for s2 is allocated at sp
 ; FAST: add x1, sp, #32
@@ -429,17 +429,17 @@ declare i32 @f43_stack(i32 %i, i32 %i2, i32 %i3, i32 %i4, i32 %i5, i32 %i6,
 define i32 @caller43_stack() #3 {
 entry:
 ; CHECK: caller43_stack
-; CHECK: mov fp, sp
+; CHECK: mov x29, sp
 ; CHECK: sub sp, sp, #96
-; CHECK: stur {{q[0-9]+}}, [fp, #-16]
-; CHECK: stur {{q[0-9]+}}, [fp, #-32]
+; CHECK: stur {{q[0-9]+}}, [x29, #-16]
+; CHECK: stur {{q[0-9]+}}, [x29, #-32]
 ; CHECK: str {{q[0-9]+}}, [sp, #48]
 ; CHECK: str {{q[0-9]+}}, [sp, #32]
-; Space for s1 is allocated at fp-32 = sp+64
+; Space for s1 is allocated at x29-32 = sp+64
 ; Space for s2 is allocated at sp+32
 ; CHECK: add x[[B:[0-9]+]], sp, #32
 ; CHECK: str x[[B]], [sp, #16]
-; CHECK: sub x[[A:[0-9]+]], fp, #32
+; CHECK: sub x[[A:[0-9]+]], x29, #32
 ; Address of s1 is passed on stack at sp+8
 ; CHECK: str x[[A]], [sp, #8]
 ; CHECK: movz w[[C:[0-9]+]], #9
@@ -449,12 +449,12 @@ entry:
 ; FAST: sub sp, sp, #96
 ; Space for s1 is allocated at fp-32 = sp+64
 ; Space for s2 is allocated at sp+32
-; FAST: sub x[[A:[0-9]+]], fp, #32
+; FAST: sub x[[A:[0-9]+]], x29, #32
 ; FAST: add x[[B:[0-9]+]], sp, #32
-; FAST: stur {{x[0-9]+}}, [fp, #-32]
-; FAST: stur {{x[0-9]+}}, [fp, #-24]
-; FAST: stur {{x[0-9]+}}, [fp, #-16]
-; FAST: stur {{x[0-9]+}}, [fp, #-8]
+; FAST: stur {{x[0-9]+}}, [x29, #-32]
+; FAST: stur {{x[0-9]+}}, [x29, #-24]
+; FAST: stur {{x[0-9]+}}, [x29, #-16]
+; FAST: stur {{x[0-9]+}}, [x29, #-8]
 ; FAST: str {{x[0-9]+}}, [sp, #32]
 ; FAST: str {{x[0-9]+}}, [sp, #40]
 ; FAST: str {{x[0-9]+}}, [sp, #48]
@@ -487,6 +487,7 @@ entry:
 ; CHECK: str {{w[0-9]+}}, [sp, #16]
 ; CHECK: stp {{x[0-9]+}}, {{x[0-9]+}}, [sp]
 ; FAST: i128_split
+; FAST: sub sp, sp, #48
 ; FAST: mov x[[ADDR:[0-9]+]], sp
 ; FAST: str {{w[0-9]+}}, [x[[ADDR]], #16]
 ; FAST: stp {{x[0-9]+}}, {{x[0-9]+}}, [x[[ADDR]]]
index 8bbee16232ec76bda71d72a3e9c098aec652b090..1706e9eba2bd81322f687bd7a395810e32026c5b 100644 (file)
@@ -14,6 +14,7 @@ entry:
 define void @main() nounwind {
 entry:
 ; CHECK: main
+; CHECK: mov x29, sp
 ; CHECK: mov x[[REG:[0-9]+]], sp
 ; CHECK-NEXT: orr x[[REG1:[0-9]+]], xzr, #0x8
 ; CHECK-NEXT: add x0, x[[REG]], x[[REG1]]
index be0ca688da0d67c5c98b2f3d71d720b85bcff332..637ce2898f99c631eafd697fa215bfffbad0e27e 100644 (file)
@@ -24,8 +24,8 @@ entry:
 define i32 @foo1(i32 %a) nounwind {
 entry:
 ; CHECK: foo1
-; CHECK: stur w0, [fp, #-4]
-; CHECK-NEXT: ldur w0, [fp, #-4]
+; CHECK: stur w0, [x29, #-4]
+; CHECK-NEXT: ldur w0, [x29, #-4]
 ; CHECK-NEXT: bl _call1
   %a.addr = alloca i32, align 4
   store i32 %a, i32* %a.addr, align 4
index d0635adfe7c2791b7539aff2418293198b427402..e7cff60e23a1dfe5f0389f259c5933ccd90599e8 100644 (file)
@@ -3,10 +3,10 @@
 define i8* @t() nounwind {
 entry:
 ; CHECK-LABEL: t:
-; CHECK: stp fp, lr, [sp, #-16]!
-; CHECK: mov fp, sp
-; CHECK: mov x0, fp
-; CHECK: ldp fp, lr, [sp], #16
+; CHECK: stp x29, lr, [sp, #-16]!
+; CHECK: mov x29, sp
+; CHECK: mov x0, x29
+; CHECK: ldp x29, lr, [sp], #16
 ; CHECK: ret
        %0 = call i8* @llvm.frameaddress(i32 0)
         ret i8* %0
index f870fff6885d2c4458b383f56c75cbf1aaf1ccef..06efacb76ca955eefedeee38a134e3017ec6b194 100644 (file)
@@ -2,27 +2,27 @@
 ; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s --check-prefix=CHECK-LINUX
 
 ; CHECK-LABEL: main:
-; CHECK:       stp     fp, lr, [sp, #-16]!
-; CHECK-NEXT:  mov     fp, sp
+; CHECK:       stp     x29, lr, [sp, #-16]!
+; CHECK-NEXT:  mov     x29, sp
 ; CHECK-NEXT:  sub     sp, sp, #16
-; CHECK-NEXT:  stur    wzr, [fp, #-4]
+; CHECK-NEXT:  stur    wzr, [x29, #-4]
 ; CHECK:       adrp    x0, L_.str@PAGE
 ; CHECK:       add     x0, x0, L_.str@PAGEOFF
 ; CHECK-NEXT:  bl      _puts
-; CHECK-NEXT:  mov     sp, fp
-; CHECK-NEXT:  ldp     fp, lr, [sp], #16
+; CHECK-NEXT:  mov     sp, x29
+; CHECK-NEXT:  ldp     x29, lr, [sp], #16
 ; CHECK-NEXT:  ret
 
 ; CHECK-LINUX-LABEL: main:
-; CHECK-LINUX: stp     fp, lr, [sp, #-16]!
-; CHECK-LINUX-NEXT:    mov     fp, sp
+; CHECK-LINUX: stp     x29, lr, [sp, #-16]!
+; CHECK-LINUX-NEXT:    mov     x29, sp
 ; CHECK-LINUX-NEXT:    sub     sp, sp, #16
-; CHECK-LINUX-NEXT:    stur    wzr, [fp, #-4]
+; CHECK-LINUX-NEXT:    stur    wzr, [x29, #-4]
 ; CHECK-LINUX: adrp    x0, .L.str
 ; CHECK-LINUX: add     x0, x0, :lo12:.L.str
 ; CHECK-LINUX-NEXT:    bl      puts
-; CHECK-LINUX-NEXT:    mov     sp, fp
-; CHECK-LINUX-NEXT:    ldp     fp, lr, [sp], #16
+; CHECK-LINUX-NEXT:    mov     sp, x29
+; CHECK-LINUX-NEXT:    ldp     x29, lr, [sp], #16
 ; CHECK-LINUX-NEXT:    ret
 
 @.str = private unnamed_addr constant [7 x i8] c"hello\0A\00"
index 993e3eb233208dc73007f218247eb9137fec9af1..c9f63d931d60cf0797cd4cfa18e89140e510b02d 100644 (file)
@@ -25,10 +25,10 @@ entry:
 ; as a leaf function.
 ;
 ; CHECK-LABEL: caller_meta_leaf
-; CHECK:       mov fp, sp
+; CHECK:       mov x29, sp
 ; CHECK-NEXT:  sub sp, sp, #32
 ; CHECK:       Ltmp
-; CHECK:       mov sp, fp
+; CHECK:       mov sp, x29
 ; CHECK:       ret
 
 define void @caller_meta_leaf() {
index e06ce9072eaf15bd059828a55444e876f2ab8f83..76c8e18799b7e69a6f5b282fde4752ad5a3375df 100644 (file)
@@ -12,12 +12,12 @@ entry:
 define i8* @rt2() nounwind readnone {
 entry:
 ; CHECK-LABEL: rt2:
-; CHECK: stp fp, lr, [sp, #-16]!
-; CHECK: mov fp, sp
-; CHECK: ldr x[[REG:[0-9]+]], [fp]
+; CHECK: stp x29, lr, [sp, #-16]!
+; CHECK: mov x29, sp
+; CHECK: ldr x[[REG:[0-9]+]], [x29]
 ; CHECK: ldr x[[REG2:[0-9]+]], [x[[REG]]]
 ; CHECK: ldr x0, [x[[REG2]], #8]
-; CHECK: ldp fp, lr, [sp], #16
+; CHECK: ldp x29, lr, [sp], #16
 ; CHECK: ret
   %0 = tail call i8* @llvm.returnaddress(i32 2)
   ret i8* %0
index 31446ff9692e24e9e7fdb60d95e43ea7887ab314..b2de225c9ce6cf7eafed34e7eca0a59a29abfa4b 100644 (file)
@@ -72,7 +72,7 @@
 // CHECK-OBJ: 50 R_AARCH64_ADR_GOT_PAGE sym
 
    adrp x29, :gottprel:sym
-// CHECK: adrp fp, :gottprel:sym
+// CHECK: adrp x29, :gottprel:sym
 // CHECK-OBJ: 54 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 sym
 
    adrp x2, :tlsdesc:sym
@@ -105,7 +105,7 @@ trickQuestion:
    ldrsb w23, [x19, #:dtprel_lo12:sym]
    ldrsb x17, [x13, #:dtprel_lo12_nc:sym]
    ldr b11, [x7, #:dtprel_lo12:sym]
-// CHECK: ldrb w23, [fp, :dtprel_lo12_nc:sym]
+// CHECK: ldrb w23, [x29, :dtprel_lo12_nc:sym]
 // CHECK: ldrsb w23, [x19, :dtprel_lo12:sym]
 // CHECK: ldrsb x17, [x13, :dtprel_lo12_nc:sym]
 // CHECK: ldr b11, [x7, :dtprel_lo12:sym]
@@ -144,7 +144,7 @@ trickQuestion:
    ldrsh w23, [x19, #:dtprel_lo12:sym]
    ldrsh x17, [x13, #:dtprel_lo12_nc:sym]
    ldr h11, [x7, #:dtprel_lo12:sym]
-// CHECK: ldrh w23, [fp, :dtprel_lo12_nc:sym]
+// CHECK: ldrh w23, [x29, :dtprel_lo12_nc:sym]
 // CHECK: ldrsh w23, [x19, :dtprel_lo12:sym]
 // CHECK: ldrsh x17, [x13, :dtprel_lo12_nc:sym]
 // CHECK: ldr h11, [x7, :dtprel_lo12:sym]
index 0e8f1d5008e0f8a4ee876a36d0dfa1e700831037..ce6c62c58b0b18f1a29507191d4123b3e6ce4c86 100644 (file)
@@ -208,7 +208,7 @@ foo:
 ; Pre-indexed loads and stores
 ;-----------------------------------------------------------------------------
 
-  ldr   fp, [x7, #8]!
+  ldr   x29, [x7, #8]!
   ldr   lr, [x7, #8]!
   ldr   b5, [x0, #1]!
   ldr   h6, [x0, #2]!
@@ -217,14 +217,14 @@ foo:
   ldr   q9, [x0, #16]!
 
   str   lr, [x7, #-8]!
-  str   fp, [x7, #-8]!
+  str   x29, [x7, #-8]!
   str   b5, [x0, #-1]!
   str   h6, [x0, #-2]!
   str   s7, [x0, #-4]!
   str   d8, [x0, #-8]!
   str   q9, [x0, #-16]!
 
-; CHECK: ldr  fp, [x7, #8]!             ; encoding: [0xfd,0x8c,0x40,0xf8]
+; CHECK: ldr  x29, [x7, #8]!             ; encoding: [0xfd,0x8c,0x40,0xf8]
 ; CHECK: ldr  lr, [x7, #8]!             ; encoding: [0xfe,0x8c,0x40,0xf8]
 ; CHECK: ldr  b5, [x0, #1]!             ; encoding: [0x05,0x1c,0x40,0x3c]
 ; CHECK: ldr  h6, [x0, #2]!             ; encoding: [0x06,0x2c,0x40,0x7c]
@@ -233,7 +233,7 @@ foo:
 ; CHECK: ldr  q9, [x0, #16]!            ; encoding: [0x09,0x0c,0xc1,0x3c]
 
 ; CHECK: str  lr, [x7, #-8]!            ; encoding: [0xfe,0x8c,0x1f,0xf8]
-; CHECK: str  fp, [x7, #-8]!            ; encoding: [0xfd,0x8c,0x1f,0xf8]
+; CHECK: str  x29, [x7, #-8]!            ; encoding: [0xfd,0x8c,0x1f,0xf8]
 ; CHECK: str  b5, [x0, #-1]!            ; encoding: [0x05,0xfc,0x1f,0x3c]
 ; CHECK: str  h6, [x0, #-2]!            ; encoding: [0x06,0xec,0x1f,0x7c]
 ; CHECK: str  s7, [x0, #-4]!            ; encoding: [0x07,0xcc,0x1f,0xbc]
@@ -244,14 +244,14 @@ foo:
 ; post-indexed loads and stores
 ;-----------------------------------------------------------------------------
   str lr, [x7], #-8
-  str fp, [x7], #-8
+  str x29, [x7], #-8
   str b5, [x0], #-1
   str h6, [x0], #-2
   str s7, [x0], #-4
   str d8, [x0], #-8
   str q9, [x0], #-16
 
-  ldr fp, [x7], #8
+  ldr x29, [x7], #8
   ldr lr, [x7], #8
   ldr b5, [x0], #1
   ldr h6, [x0], #2
@@ -260,14 +260,14 @@ foo:
   ldr q9, [x0], #16
 
 ; CHECK: str lr, [x7], #-8             ; encoding: [0xfe,0x84,0x1f,0xf8]
-; CHECK: str fp, [x7], #-8             ; encoding: [0xfd,0x84,0x1f,0xf8]
+; CHECK: str x29, [x7], #-8             ; encoding: [0xfd,0x84,0x1f,0xf8]
 ; CHECK: str b5, [x0], #-1             ; encoding: [0x05,0xf4,0x1f,0x3c]
 ; CHECK: str h6, [x0], #-2             ; encoding: [0x06,0xe4,0x1f,0x7c]
 ; CHECK: str s7, [x0], #-4             ; encoding: [0x07,0xc4,0x1f,0xbc]
 ; CHECK: str d8, [x0], #-8             ; encoding: [0x08,0x84,0x1f,0xfc]
 ; CHECK: str q9, [x0], #-16            ; encoding: [0x09,0x04,0x9f,0x3c]
 
-; CHECK: ldr fp, [x7], #8              ; encoding: [0xfd,0x84,0x40,0xf8]
+; CHECK: ldr x29, [x7], #8              ; encoding: [0xfd,0x84,0x40,0xf8]
 ; CHECK: ldr lr, [x7], #8              ; encoding: [0xfe,0x84,0x40,0xf8]
 ; CHECK: ldr b5, [x0], #1              ; encoding: [0x05,0x14,0x40,0x3c]
 ; CHECK: ldr h6, [x0], #2              ; encoding: [0x06,0x24,0x40,0x7c]
@@ -545,8 +545,8 @@ foo:
 ; unambiguous, i.e. negative or unaligned."
 ;-----------------------------------------------------------------------------
 
-  ldr x11, [fp, #-8]
-  ldr x11, [fp, #7]
+  ldr x11, [x29, #-8]
+  ldr x11, [x29, #7]
   ldr w0, [x0, #2]
   ldr w0, [x0, #-256]
   ldr b2, [x1, #-2]
@@ -559,8 +559,8 @@ foo:
   ldr q5, [x8, #8]
   ldr q5, [x9, #-16]
 
-; CHECK: ldur  x11, [fp, #-8]          ; encoding: [0xab,0x83,0x5f,0xf8]
-; CHECK: ldur  x11, [fp, #7]           ; encoding: [0xab,0x73,0x40,0xf8]
+; CHECK: ldur  x11, [x29, #-8]          ; encoding: [0xab,0x83,0x5f,0xf8]
+; CHECK: ldur  x11, [x29, #7]           ; encoding: [0xab,0x73,0x40,0xf8]
 ; CHECK: ldur  w0, [x0, #2]            ; encoding: [0x00,0x20,0x40,0xb8]
 ; CHECK: ldur  w0, [x0, #-256]         ; encoding: [0x00,0x00,0x50,0xb8]
 ; CHECK: ldur  b2, [x1, #-2]           ; encoding: [0x22,0xe0,0x5f,0x3c]
@@ -573,8 +573,8 @@ foo:
 ; CHECK: ldur  q5, [x8, #8]            ; encoding: [0x05,0x81,0xc0,0x3c]
 ; CHECK: ldur  q5, [x9, #-16]          ; encoding: [0x25,0x01,0xdf,0x3c]
 
-  str x11, [fp, #-8]
-  str x11, [fp, #7]
+  str x11, [x29, #-8]
+  str x11, [x29, #7]
   str w0, [x0, #2]
   str w0, [x0, #-256]
   str b2, [x1, #-2]
@@ -587,8 +587,8 @@ foo:
   str q5, [x8, #8]
   str q5, [x9, #-16]
 
-; CHECK: stur  x11, [fp, #-8]          ; encoding: [0xab,0x83,0x1f,0xf8]
-; CHECK: stur  x11, [fp, #7]           ; encoding: [0xab,0x73,0x00,0xf8]
+; CHECK: stur  x11, [x29, #-8]          ; encoding: [0xab,0x83,0x1f,0xf8]
+; CHECK: stur  x11, [x29, #7]           ; encoding: [0xab,0x73,0x00,0xf8]
 ; CHECK: stur  w0, [x0, #2]            ; encoding: [0x00,0x20,0x00,0xb8]
 ; CHECK: stur  w0, [x0, #-256]         ; encoding: [0x00,0x00,0x10,0xb8]
 ; CHECK: stur  b2, [x1, #-2]           ; encoding: [0x22,0xe0,0x1f,0x3c]
index a754c7231e2a98fa03ea93f6c5aad1282c404c10..75d038307e6a6cb801e8c2af130dd59c00d4a33f 100644 (file)
@@ -263,10 +263,10 @@ ld3st3_multiple:
 
 ; CHECK: ld3.8b { v9, v10, v11 }, [x9]  ; encoding: [0x29,0x41,0x40,0x0c]
 ; CHECK: ld3.16b { v14, v15, v16 }, [x19] ; encoding: [0x6e,0x42,0x40,0x4c]
-; CHECK: ld3.4h { v24, v25, v26 }, [fp] ; encoding: [0xb8,0x47,0x40,0x0c]
+; CHECK: ld3.4h { v24, v25, v26 }, [x29] ; encoding: [0xb8,0x47,0x40,0x0c]
 ; CHECK: ld3.8h { v30, v31, v0 }, [x9]  ; encoding: [0x3e,0x45,0x40,0x4c]
 ; CHECK: ld3.2s { v2, v3, v4 }, [x19]   ; encoding: [0x62,0x4a,0x40,0x0c]
-; CHECK: ld3.4s { v4, v5, v6 }, [fp]    ; encoding: [0xa4,0x4b,0x40,0x4c]
+; CHECK: ld3.4s { v4, v5, v6 }, [x29]    ; encoding: [0xa4,0x4b,0x40,0x4c]
 ; CHECK: ld3.2d { v7, v8, v9 }, [x9]    ; encoding: [0x27,0x4d,0x40,0x4c]
 
 ; CHECK: st3.8b { v4, v5, v6 }, [x19]   ; encoding: [0x64,0x42,0x00,0x0c]
@@ -279,10 +279,10 @@ ld3st3_multiple:
 
 ; CHECK: st3.8b { v10, v11, v12 }, [x9] ; encoding: [0x2a,0x41,0x00,0x0c]
 ; CHECK: st3.16b { v14, v15, v16 }, [x19] ; encoding: [0x6e,0x42,0x00,0x4c]
-; CHECK: st3.4h { v24, v25, v26 }, [fp] ; encoding: [0xb8,0x47,0x00,0x0c]
+; CHECK: st3.4h { v24, v25, v26 }, [x29] ; encoding: [0xb8,0x47,0x00,0x0c]
 ; CHECK: st3.8h { v30, v31, v0 }, [x9]  ; encoding: [0x3e,0x45,0x00,0x4c]
 ; CHECK: st3.2s { v2, v3, v4 }, [x19]   ; encoding: [0x62,0x4a,0x00,0x0c]
-; CHECK: st3.4s { v7, v8, v9 }, [fp]    ; encoding: [0xa7,0x4b,0x00,0x4c]
+; CHECK: st3.4s { v7, v8, v9 }, [x29]    ; encoding: [0xa7,0x4b,0x00,0x4c]
 ; CHECK: st3.2d { v4, v5, v6 }, [x9]    ; encoding: [0x24,0x4d,0x00,0x4c]
 
 ld4st4_multiple:
index 7e8b7545b40d127825ee4a6faf0bcd9d2fb57812..49270146f11eeba5047f7e6d796f45fb05ea3f45 100644 (file)
         ldrsb x29, [x28, #:tprel_lo12_nc:var]
 // CHECK: ldrb    w29, [lr, :tprel_lo12:var] // encoding: [0xdd,0bAAAAAA11,0b01AAAAAA,0x39]
 // CHECK-NEXT:                                 //   fixup A - offset: 0, value: :tprel_lo12:var, kind: fixup_arm64_ldst_imm12_scale1
-// CHECK: ldrsb   fp, [x28, :tprel_lo12_nc:var] // encoding: [0x9d,0bAAAAAA11,0b10AAAAAA,0x39]
+// CHECK: ldrsb   x29, [x28, :tprel_lo12_nc:var] // encoding: [0x9d,0bAAAAAA11,0b10AAAAAA,0x39]
 // CHECK-NEXT:                                 //   fixup A - offset: 0, value: :tprel_lo12_nc:var, kind: fixup_arm64_ldst_imm12_scale1
 
 // CHECK-ELF-NEXT:     {{0x[0-9A-F]+}} R_AARCH64_TLSLE_LDST8_TPREL_LO12 [[VARSYM]]
         ldrsb x29, [x28, #:dtprel_lo12_nc:var]
 // CHECK: ldrb    w29, [lr, :dtprel_lo12:var] // encoding: [0xdd,0bAAAAAA11,0b01AAAAAA,0x39]
 // CHECK-NEXT:                                 //   fixup A - offset: 0, value: :dtprel_lo12:var, kind: fixup_arm64_ldst_imm12_scale1
-// CHECK: ldrsb   fp, [x28, :dtprel_lo12_nc:var] // encoding: [0x9d,0bAAAAAA11,0b10AAAAAA,0x39]
+// CHECK: ldrsb   x29, [x28, :dtprel_lo12_nc:var] // encoding: [0x9d,0bAAAAAA11,0b10AAAAAA,0x39]
 // CHECK-NEXT:                                 //   fixup A - offset: 0, value: :dtprel_lo12_nc:var, kind: fixup_arm64_ldst_imm12_scale1
 
 // CHECK-ELF-NEXT:     {{0x[0-9A-F]+}} R_AARCH64_TLSLD_LDST8_DTPREL_LO12 [[VARSYM]]
index d0371cfc69f87bd0a4fe371e5358a5635d4f1125..5be3673f4e5360456d651ed682740c0ed70d5162 100644 (file)
   0x08 0x8c 0x40 0xfc
   0x09 0x0c 0xc1 0x3c
 
-# CHECK: ldr   fp, [x7, #8]!
+# CHECK: ldr   x29, [x7, #8]!
 # CHECK: ldr   lr, [x7, #8]!
 # CHECK: ldr   b5, [x0, #1]!
 # CHECK: ldr   h6, [x0, #2]!
   0x09 0x0c 0x9f 0x3c
 
 # CHECK: str   lr, [x7, #-8]!
-# CHECK: str   fp, [x7, #-8]!
+# CHECK: str   x29, [x7, #-8]!
 # CHECK: str   b5, [x0, #-1]!
 # CHECK: str   h6, [x0, #-2]!
 # CHECK: str   s7, [x0, #-4]!
   0x09 0x04 0x9f 0x3c
 
 # CHECK: str   lr, [x7], #-8
-# CHECK: str   fp, [x7], #-8
+# CHECK: str   x29, [x7], #-8
 # CHECK: str   b5, [x0], #-1
 # CHECK: str   h6, [x0], #-2
 # CHECK: str   s7, [x0], #-4
   0x08 0x84 0x40 0xfc
   0x09 0x04 0xc1 0x3c
 
-# CHECK: ldr   fp, [x7], #8
+# CHECK: ldr   x29, [x7], #8
 # CHECK: ldr   lr, [x7], #8
 # CHECK: ldr   b5, [x0], #1
 # CHECK: ldr   h6, [x0], #2