brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.2 KiB · 4426377 Raw
617 lines · plain
1// REQUIRES: aarch642// RUN: llvm-mc -filetype=obj -triple=aarch64 %s -o %t.o3// RUN: ld.lld -fix-cortex-a53-843419 -z separate-code -verbose %t.o -o %t2 2>&1 | FileCheck -check-prefix CHECK-PRINT %s4// RUN: llvm-objdump --no-print-imm-hex --triple=aarch64-linux-gnu -d %t2 | FileCheck %s --check-prefixes=CHECK,CHECK-FIX5// RUN: ld.lld %t.o -z separate-code -o %t36// RUN: llvm-objdump --no-print-imm-hex --triple=aarch64-linux-gnu -d %t3 | FileCheck %s --check-prefixes=CHECK,CHECK-NOFIX7// RUN: ld.lld -fix-cortex-a53-843419 -r -z separate-code %t.o -o %t48// RUN: llvm-objdump --no-print-imm-hex --triple=aarch64-linux-gnu -d %t4 | FileCheck %s --check-prefixes=CHECK-RELOCATABLE9// Test cases for Cortex-A53 Erratum 84341910// See ARM-EPM-048406 Cortex_A53_MPCore_Software_Developers_Errata_Notice.pdf11// for full erratum details.12// In Summary13// 1.)14// ADRP (0xff8 or 0xffc).15// 2.)16// - load or store single register or either integer or vector registers.17// - STP or STNP of either vector or vector registers.18// - Advanced SIMD ST1 store instruction.19// - Must not write Rn.20// 3.) optional instruction, can't be a branch, must not write Rn, may read Rn.21// 4.) A load or store instruction from the Load/Store register unsigned22// immediate class using Rn as the base register.23 24// Each section contains a sequence of instructions that should be recognized25// as erratum 843419. The test cases cover the major variations such as:26// - adrp starts at 0xfff8 or 0xfffc.27// - Variations in instruction class for instruction 2.28// - Optional instruction 3 present or not.29// - Load or store for instruction 4.30 31// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 211FF8 in unpatched output.32// CHECK: <t3_ff8_ldr>:33// CHECK-NEXT:    211ff8:        f0000260        adrp    x0, 0x26000034// CHECK-NEXT:    211ffc:        f9400021        ldr             x1, [x1]35// CHECK-FIX:     212000:        1400c803        b       0x24400c36// CHECK-NOFIX:   212000:        f9400000        ldr             x0, [x0]37// CHECK-NEXT:    212004:        d65f03c0        ret38// CHECK-RELOCATABLE: <t3_ff8_ldr>:39// CHECK-RELOCATABLE-NEXT:    ff8:        90000000        adrp    x0, 0x040// CHECK-RELOCATABLE-NEXT:    ffc:        f9400021        ldr             x1, [x1]41// CHECK-RELOCATABLE-NEXT:   1000:        f9400000        ldr             x0, [x0]42// CHECK-RELOCATABLE-NEXT:   1004:        d65f03c0        ret43 44        .section .text.01, "ax", %progbits45        .balign 409646        .globl t3_ff8_ldr47        .type t3_ff8_ldr, %function48        .space 4096 - 849t3_ff8_ldr:50        adrp x0, dat151        ldr x1, [x1, #0]52        ldr x0, [x0, :got_lo12:dat1]53        ret54 55// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 213FF8 in unpatched output.56// CHECK: <t3_ff8_ldrsimd>:57// CHECK-NEXT:    213ff8:        b0000260        adrp    x0, 0x26000058// CHECK-NEXT:    213ffc:        bd400021        ldr             s1, [x1]59// CHECK-FIX:     214000:        1400c005        b       0x24401460// CHECK-NOFIX:   214000:        f9400402        ldr     x2, [x0, #8]61// CHECK-NEXT:    214004:        d65f03c0        ret62        .section .text.02, "ax", %progbits63        .balign 409664        .globl t3_ff8_ldrsimd65        .type t3_ff8_ldrsimd, %function66        .space 4096 - 867t3_ff8_ldrsimd:68        adrp x0, dat269        ldr s1, [x1, #0]70        ldr x2, [x0, :got_lo12:dat2]71        ret72 73// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 215FFC in unpatched output.74// CHECK: <t3_ffc_ldrpost>:75// CHECK-NEXT:    215ffc:        f0000240        adrp    x0, 0x26000076// CHECK-NEXT:    216000:        bc408421        ldr     s1, [x1], #877// CHECK-FIX:     216004:        1400b806        b       0x24401c78// CHECK-NOFIX:   216004:        f9400803        ldr     x3, [x0, #16]79// CHECK-NEXT:    216008:        d65f03c0        ret80        .section .text.03, "ax", %progbits81        .balign 409682        .globl t3_ffc_ldrpost83        .type t3_ffc_ldrpost, %function84        .space 4096 - 485t3_ffc_ldrpost:86        adrp x0, dat387        ldr s1, [x1], #888        ldr x3, [x0, :got_lo12:dat3]89        ret90 91// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 217FF8 in unpatched output.92// CHECK: <t3_ff8_strpre>:93// CHECK-NEXT:    217ff8:        b0000240        adrp    x0, 0x26000094// CHECK-NEXT:    217ffc:        bc008c21        str     s1, [x1, #8]!95// CHECK-FIX:     218000:        1400b009        b       0x24402496// CHECK-NOFIX:   218000:        f9400c02        ldr     x2, [x0, #24]97// CHECK-NEXT:    218004:        d65f03c0        ret98        .section .text.04, "ax", %progbits99        .balign 4096100        .globl t3_ff8_strpre101        .type t3_ff8_strpre, %function102        .space 4096 - 8103t3_ff8_strpre:104        adrp x0, dat1105        str s1, [x1, #8]!106        ldr x2, [x0, :lo12:dat1]107        ret108 109// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 219FFC in unpatched output.110// CHECK: <t3_ffc_str>:111// CHECK-NEXT:    219ffc:        f000023c        adrp    x28, 0x260000112// CHECK-NEXT:    21a000:        f9000042        str             x2, [x2]113// CHECK-FIX:     21a004:        1400a80a        b       0x24402c114// CHECK-NOFIX:   21a004:        f900139c        str     x28, [x28, #32]115// CHECK-NEXT:    21a008:        d65f03c0        ret116        .section .text.05, "ax", %progbits117        .balign 4096118        .globl t3_ffc_str119        .type t3_ffc_str, %function120        .space 4096 - 4121t3_ffc_str:122        adrp x28, dat2123        str x2, [x2, #0]124        str x28, [x28, :lo12:dat2]125        ret126 127// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 21BFFC in unpatched output.128// CHECK: <t3_ffc_strsimd>:129// CHECK-NEXT:    21bffc:        b000023c        adrp    x28, 0x260000130// CHECK-NEXT:    21c000:        b9000044        str             w4, [x2]131// CHECK-FIX:     21c004:        1400a00c        b       0x244034132// CHECK-NOFIX:   21c004:        f9001784        str     x4, [x28, #40]133// CHECK-NEXT:    21c008:        d65f03c0        ret134        .section .text.06, "ax", %progbits135        .balign 4096136        .globl t3_ffc_strsimd137        .type t3_ffc_strsimd, %function138        .space 4096 - 4139t3_ffc_strsimd:140        adrp x28, dat3141        str w4, [x2, #0]142        str x4, [x28, :lo12:dat3]143        ret144 145// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 21DFF8 in unpatched output.146// CHECK: <t3_ff8_ldrunpriv>:147// CHECK-NEXT:    21dff8:        f000021d        adrp    x29, 0x260000148// CHECK-NEXT:    21dffc:        38400841        ldtrb           w1, [x2]149// CHECK-FIX:     21e000:        1400980f        b       0x24403c150// CHECK-NOFIX:   21e000:        f94003bd        ldr             x29, [x29]151// CHECK-NEXT:    21e004:        d65f03c0        ret152        .section .text.07, "ax", %progbits153        .balign 4096154        .globl t3_ff8_ldrunpriv155        .type t3_ff8_ldrunpriv, %function156        .space 4096 - 8157t3_ff8_ldrunpriv:158        adrp x29, dat1159        ldtrb w1, [x2, #0]160        ldr x29, [x29, :got_lo12:dat1]161        ret162 163// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 21FFFC in unpatched output.164// CHECK: <t3_ffc_ldur>:165// CHECK-NEXT:    21fffc:        b000021d        adrp    x29, 0x260000166// CHECK-NEXT:    220000:        b8404042        ldur    w2, [x2, #4]167// CHECK-FIX:     220004:        14009010        b       0x244044168// CHECK-NOFIX:   220004:        f94007bd        ldr     x29, [x29, #8]169// CHECK-NEXT:    220008:        d65f03c0        ret170        .balign 4096171        .globl t3_ffc_ldur172        .type t3_ffc_ldur, %function173        .space 4096 - 4174t3_ffc_ldur:175        adrp x29, dat2176        ldur w2, [x2, #4]177        ldr x29, [x29, :got_lo12:dat2]178        ret179 180// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 221FFC in unpatched output.181// CHECK: <t3_ffc_sturh>:182// CHECK-NEXT:    221ffc:        f00001f2        adrp    x18, 0x260000183// CHECK-NEXT:    222000:        78004043        sturh   w3, [x2, #4]184// CHECK-FIX:     222004:        14008812        b       0x24404c185// CHECK-NOFIX:   222004:        f9400a41        ldr     x1, [x18, #16]186// CHECK-NEXT:    222008:        d65f03c0        ret187        .section .text.09, "ax", %progbits188        .balign 4096189        .globl t3_ffc_sturh190        .type t3_ffc_sturh, %function191        .space 4096 - 4192t3_ffc_sturh:193        adrp x18, dat3194        sturh w3, [x2, #4]195        ldr x1, [x18, :got_lo12:dat3]196        ret197 198// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 223FF8 in unpatched output.199// CHECK: <t3_ff8_literal>:200// CHECK-NEXT:    223ff8:        b00001f2        adrp    x18, 0x260000201// CHECK-NEXT:    223ffc:        58ffffe3        ldr     x3, 0x223ff8202// CHECK-FIX:     224000:        14008015        b       0x244054203// CHECK-NOFIX:   224000:        f9400e52        ldr     x18, [x18, #24]204// CHECK-NEXT:    224004:        d65f03c0        ret205        .section .text.10, "ax", %progbits206        .balign 4096207        .globl t3_ff8_literal208        .type t3_ff8_literal, %function209        .space 4096 - 8210t3_ff8_literal:211        adrp x18, dat1212        ldr x3, t3_ff8_literal213        ldr x18, [x18, :lo12:dat1]214        ret215 216// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 225FFC in unpatched output.217// CHECK: <t3_ffc_register>:218// CHECK-NEXT:    225ffc:        f00001cf        adrp    x15, 0x260000219// CHECK-NEXT:    226000:        f8616843        ldr             x3, [x2, x1]220// CHECK-FIX:     226004:        14007816        b       0x24405c221// CHECK-NOFIX:   226004:        f94011ea        ldr     x10, [x15, #32]222// CHECK-NEXT:    226008:        d65f03c0        ret223        .section .text.11, "ax", %progbits224        .balign 4096225        .globl t3_ffc_register226        .type t3_ffc_register, %function227        .space 4096 - 4228t3_ffc_register:229        adrp x15, dat2230        ldr x3, [x2, x1]231        ldr x10, [x15, :lo12:dat2]232        ret233 234// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 227FF8 in unpatched output.235// CHECK: <t3_ff8_stp>:236// CHECK-NEXT:    227ff8:        b00001d0        adrp    x16, 0x260000237// CHECK-NEXT:    227ffc:        a9000861        stp             x1, x2, [x3]238// CHECK-FIX:     228000:        14007019        b       0x244064239// CHECK-NOFIX:   228000:        f940160d        ldr     x13, [x16, #40]240// CHECK-NEXT:    228004:        d65f03c0        ret241        .section .text.12, "ax", %progbits242        .balign 4096243        .globl t3_ff8_stp244        .type t3_ff8_stp, %function245        .space 4096 - 8246t3_ff8_stp:247        adrp x16, dat3248        stp x1,x2, [x3, #0]249        ldr x13, [x16, :lo12:dat3]250        ret251 252// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 229FFC in unpatched output.253// CHECK: <t3_ffc_stnp>:254// CHECK-NEXT:    229ffc:        f00001a7        adrp    x7, 0x260000255// CHECK-NEXT:    22a000:        a8000861        stnp            x1, x2, [x3]256// CHECK-FIX:     22a004:        1400681a        b       0x24406c257// CHECK-NOFIX:   22a004:        f9400ce9        ldr             x9, [x7, #24]258// CHECK-NEXT:    22a008:        d65f03c0        ret259        .section .text.13, "ax", %progbits260        .balign 4096261        .globl t3_ffc_stnp262        .type t3_ffc_stnp, %function263        .space 4096 - 4264t3_ffc_stnp:265        adrp x7, dat1266        stnp x1,x2, [x3, #0]267        ldr x9, [x7, :lo12:dat1]268        ret269 270// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 22BFFC in unpatched output.271// CHECK: <t3_ffc_st1singlepost>:272// CHECK-NEXT:    22bffc:        b00001b7        adrp    x23, 0x260000273// CHECK-NEXT:    22c000:        0d820420        st1 { v0.b }[1], [x1], x2274// CHECK-FIX:     22c004:        1400601c        b       0x244074275// CHECK-NOFIX:   22c004:        f94012f6        ldr     x22, [x23, #32]276// CHECK-NEXT:    22c008:        d65f03c0        ret277        .section .text.14, "ax", %progbits278        .balign 4096279        .globl t3_ffc_st1singlepost280        .type t3_ffc_st1singlepost, %function281        .space 4096 - 4282t3_ffc_st1singlepost:283        adrp x23, dat2284        st1 { v0.b }[1], [x1], x2285        ldr x22, [x23, :lo12:dat2]286        ret287 288// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 22DFF8 in unpatched output.289// CHECK: <t3_ff8_st1multiple>:290// CHECK-NEXT:    22dff8:        f0000197        adrp    x23, 0x260000291// CHECK-NEXT:    22dffc:        4c00a020        st1     { v0.16b, v1.16b }, [x1]292// CHECK-FIX:     22e000:        1400581f        b       0x24407c293// CHECK-NOFIX:   22e000:        f94016f8        ldr     x24, [x23, #40]294// CHECK-NEXT:    22e004:        d65f03c0        ret295        .section .text.15, "ax", %progbits296        .balign 4096297        .globl t3_ff8_st1multiple298        .type t3_ff8_st1muliple, %function299        .space 4096 - 8300t3_ff8_st1multiple:301        adrp x23, dat3302        st1 { v0.16b, v1.16b }, [x1]303        ldr x24, [x23, :lo12:dat3]304        ret305 306// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 22FFF8 in unpatched output.307// CHECK: <t4_ff8_ldr>:308// CHECK-NEXT:    22fff8:        b0000180        adrp    x0, 0x260000309// CHECK-NEXT:    22fffc:        f9400021        ldr             x1, [x1]310// CHECK-NEXT:    230000:        8b000042        add             x2, x2, x0311// CHECK-FIX:     230004:        14005020        b       0x244084312// CHECK-NOFIX:   230004:        f9400002        ldr             x2, [x0]313// CHECK-NEXT:    230008:        d65f03c0        ret314        .section .text.16, "ax", %progbits315        .balign 4096316        .globl t4_ff8_ldr317        .type t4_ff8_ldr, %function318        .space 4096 - 8319t4_ff8_ldr:320        adrp x0, dat1321        ldr x1, [x1, #0]322        add x2, x2, x0323        ldr x2, [x0, :got_lo12:dat1]324        ret325 326// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 231FFC in unpatched output.327// CHECK: <t4_ffc_str>:328// CHECK-NEXT:    231ffc:        f000017c        adrp    x28, 0x260000329// CHECK-NEXT:    232000:        f9000042        str             x2, [x2]330// CHECK-NEXT:    232004:        cb020020        sub             x0, x1, x2331// CHECK-FIX:     232008:        14004821        b       0x24408c332// CHECK-NOFIX:   232008:        f900079b        str     x27, [x28, #8]333// CHECK-NEXT:    23200c:        d65f03c0        ret334        .section .text.17, "ax", %progbits335        .balign 4096336        .globl t4_ffc_str337        .type t4_ffc_str, %function338        .space 4096 - 4339t4_ffc_str:340        adrp x28, dat2341        str x2, [x2, #0]342        sub x0, x1, x2343        str x27, [x28, :got_lo12:dat2]344        ret345 346// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 233FF8 in unpatched output.347// CHECK: <t4_ff8_stp>:348// CHECK-NEXT:    233ff8:        b0000170        adrp    x16, 0x260000349// CHECK-NEXT:    233ffc:        a9000861        stp             x1, x2, [x3]350// CHECK-NEXT:    234000:        9b107e03        mul             x3, x16, x16351// CHECK-FIX:     234004:        14004024        b       0x244094352// CHECK-NOFIX:   234004:        f9400a0e        ldr     x14, [x16, #16]353// CHECK-NEXT:    234008:        d65f03c0        ret354        .section .text.18, "ax", %progbits355        .balign 4096356        .globl t4_ff8_stp357        .type t4_ff8_stp, %function358        .space 4096 - 8359t4_ff8_stp:360        adrp x16, dat3361        stp x1,x2, [x3, #0]362        mul x3, x16, x16363        ldr x14, [x16, :got_lo12:dat3]364        ret365 366// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 235FF8 in unpatched output.367// CHECK: <t4_ff8_stppre>:368// CHECK-NEXT:    235ff8:        f0000150        adrp    x16, 0x260000369// CHECK-NEXT:    235ffc:        a9810861        stp     x1, x2, [x3, #16]!370// CHECK-NEXT:    236000:        9b107e03        mul             x3, x16, x16371// CHECK-FIX:     236004:        14003826        b       0x24409c372// CHECK-NOFIX:   236004:        f940060e        ldr     x14, [x16, #8]373// CHECK-NEXT:    236008:        d65f03c0        ret374        .section .text.19, "ax", %progbits375        .balign 4096376        .globl t4_ff8_stppre377        .type t4_ff8_stppre, %function378        .space 4096 - 8379t4_ff8_stppre:380        adrp x16, dat1381        stp x1,x2, [x3, #16]!382        mul x3, x16, x16383        ldr x14, [x16, #8]384        ret385 386// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 237FF8 in unpatched output.387// CHECK: <t4_ff8_stppost>:388// CHECK-NEXT:    237ff8:        b0000150        adrp    x16, 0x260000389// CHECK-NEXT:    237ffc:        a8810861        stp     x1, x2, [x3], #16390// CHECK-NEXT:    238000:        9b107e03        mul             x3, x16, x16391// CHECK-FIX:     238004:        14003028        b       0x2440a4392// CHECK-NOFIX:   238004:        f940060e        ldr     x14, [x16, #8]393// CHECK-NEXT:    238008:        d65f03c0        ret394        .section .text.20, "ax", %progbits395        .balign 4096396        .globl t4_ff8_stppost397        .type t4_ff8_stppost, %function398        .space 4096 - 8399t4_ff8_stppost:400        adrp x16, dat2401        stp x1,x2, [x3], #16402        mul x3, x16, x16403        ldr x14, [x16, #8]404        ret405 406// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 239FFC in unpatched output.407// CHECK: <t4_ffc_stpsimd>:408// CHECK-NEXT:    239ffc:        f0000130        adrp    x16, 0x260000409// CHECK-NEXT:    23a000:        ad000861        stp             q1, q2, [x3]410// CHECK-NEXT:    23a004:        9b107e03        mul             x3, x16, x16411// CHECK-FIX:     23a008:        14002829        b       0x2440ac412// CHECK-NOFIX:   23a008:        f940060e        ldr     x14, [x16, #8]413// CHECK-NEXT:    23a00c:        d65f03c0        ret414        .section .text.21, "ax", %progbits415        .balign 4096416        .globl t4_ffc_stpsimd417        .type t4_ffc_stpsimd, %function418        .space 4096 - 4419t4_ffc_stpsimd:420        adrp x16, dat3421        stp q1,q2, [x3, #0]422        mul x3, x16, x16423        ldr x14, [x16, #8]424        ret425 426// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 23BFFC in unpatched output.427// CHECK: <t4_ffc_stnp>:428// CHECK-NEXT:    23bffc:        b0000127        adrp    x7, 0x260000429// CHECK-NEXT:    23c000:        a8000861        stnp            x1, x2, [x3]430// CHECK-NEXT:    23c004:        d503201f        nop431// CHECK-FIX:     23c008:        1400202b        b       0x2440b4432// CHECK-NOFIX:   23c008:        f94000ea        ldr             x10, [x7]433// CHECK-NEXT:    23c00c:        d65f03c0        ret434        .section .text.22, "ax", %progbits435        .balign 4096436        .globl t4_ffc_stnp437        .type t4_ffc_stnp, %function438        .space 4096 - 4439t4_ffc_stnp:440        adrp x7, dat1441        stnp x1,x2, [x3, #0]442        nop443        ldr x10, [x7, :got_lo12:dat1]444        ret445 446// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 23DFFC in unpatched output.447// CHECK: <t4_ffc_st1>:448// CHECK-NEXT:    23dffc:        f0000118        adrp    x24, 0x260000449// CHECK-NEXT:    23e000:        4d008020        st1 { v0.s }[2], [x1]450// CHECK-NEXT:    23e004:        f94006f6        ldr     x22, [x23, #8]451// CHECK-FIX:     23e008:        1400182d        b       0x2440bc452// CHECK-NOFIX:   23e008:        f93fff18        str     x24, [x24, #32760]453// CHECK-NEXT:    23e00c:        d65f03c0        ret454        .section .text.23, "ax", %progbits455        .balign 4096456        .globl t4_ffc_st1457        .type t4_ffc_st1, %function458        .space 4096 - 4459t4_ffc_st1:460        adrp x24, dat2461        st1 { v0.s }[2], [x1]462        ldr x22, [x23, :got_lo12:dat2]463        str x24, [x24, #32760]464        ret465 466// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 23FFF8 in unpatched output.467// CHECK: <t3_ff8_ldr_once>:468// CHECK-NEXT:    23fff8:        b0000100        adrp    x0, 0x260000469// CHECK-NEXT:    23fffc:        4c827020        st1     { v0.16b }, [x1], x2470// CHECK-FIX:     240000:        14001031        b       0x2440c4471// CHECK-NOFIX:   240000:        f9400801        ldr     x1, [x0, #16]472// CHECK-NEXT:    240004:        f9400802        ldr     x2, [x0, #16]473// CHECK-NEXT:    240008:        d65f03c0        ret474        .section .text.24, "ax", %progbits475        .balign 4096476        .globl t3_ff8_ldr_once477        .type t3_ff8_ldr_once, %function478        .space 4096 - 8479t3_ff8_ldr_once:480        adrp x0, dat3481        st1 { v0.16b }, [x1], x2482        ldr x1, [x0, #16]483        ldr x2, [x0, #16]484        ret485 486// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 241FF8 in unpatched output.487// CHECK: <t3_ff8_ldxr>:488// CHECK-NEXT:    241ff8:        f00000e0        adrp    x0, 0x260000489// CHECK-NEXT:    241ffc:        c85f7c03        ldxr    x3, [x0]490// CHECK-FIX:     242000:        14000833        b       0x2440cc491// CHECK-NOFIX:   242000:        f9400801        ldr     x1, [x0, #16]492// CHECK:         242004:        f9400802        ldr     x2, [x0, #16]493// CHECK-NEXT:    242008:        d65f03c0        ret494        .section .text.25, "ax", %progbits495        .balign 4096496        .globl t3_ff8_ldxr497        .type t3_ff8_ldxr, %function498        .space 4096 - 8499t3_ff8_ldxr:500        adrp x0, dat3501        ldxr x3, [x0]502        ldr x1, [x0, #16]503        ldr x2, [x0, #16]504        ret505 506// CHECK-PRINT: detected cortex-a53-843419 erratum sequence starting at 243FF8 in unpatched output.507// CHECK: <t3_ff8_stxr>:508// CHECK-NEXT:    243ff8:        b00000e0        adrp    x0, 0x260000509// CHECK-NEXT:    243ffc:        c8047c03        stxr    w4, x3, [x0]510// CHECK-FIX:     244000:        14000035        b       0x2440d4511// CHECK-NOFIX:   244000:        f9400801        ldr     x1, [x0, #16]512// CHECK:         244004:        f9400802        ldr     x2, [x0, #16]513// CHECK-NEXT:    244008:        d65f03c0        ret514        .section .text.26, "ax", %progbits515        .balign 4096516        .globl t3_ff8_stxr517        .type t3_ff8_stxr, %function518        .space 4096 - 8519t3_ff8_stxr:520        adrp x0, dat3521        stxr w4, x3, [x0]522        ldr x1, [x0, #16]523        ldr x2, [x0, #16]524        ret525 526        .text527        .globl _start528        .type _start, %function529_start:530        ret531 532// CHECK-FIX: <__CortexA53843419_212000>:533// CHECK-FIX-NEXT:    24400c:    f9400000        ldr     x0, [x0]534// CHECK-FIX-NEXT:    244010:    17ff37fd        b       0x212004535// CHECK-FIX: <__CortexA53843419_214000>:536// CHECK-FIX-NEXT:    244014:    f9400402        ldr     x2, [x0, #8]537// CHECK-FIX-NEXT:    244018:    17ff3ffb        b       0x214004538// CHECK-FIX: <__CortexA53843419_216004>:539// CHECK-FIX-NEXT:    24401c:    f9400803        ldr     x3, [x0, #16]540// CHECK-FIX-NEXT:    244020:    17ff47fa        b       0x216008541// CHECK-FIX: <__CortexA53843419_218000>:542// CHECK-FIX-NEXT:    244024:    f9400c02        ldr     x2, [x0, #24]543// CHECK-FIX-NEXT:    244028:    17ff4ff7        b       0x218004544// CHECK-FIX: <__CortexA53843419_21A004>:545// CHECK-FIX-NEXT:    24402c:    f900139c        str     x28, [x28, #32]546// CHECK-FIX-NEXT:    244030:    17ff57f6        b       0x21a008547// CHECK-FIX: <__CortexA53843419_21C004>:548// CHECK-FIX-NEXT:    244034:    f9001784        str     x4, [x28, #40]549// CHECK-FIX-NEXT:    244038:    17ff5ff4        b       0x21c008550// CHECK-FIX: <__CortexA53843419_21E000>:551// CHECK-FIX-NEXT:    24403c:    f94003bd        ldr     x29, [x29]552// CHECK-FIX-NEXT:    244040:    17ff67f1        b       0x21e004553// CHECK-FIX: <__CortexA53843419_220004>:554// CHECK-FIX-NEXT:    244044:    f94007bd        ldr     x29, [x29, #8]555// CHECK-FIX-NEXT:    244048:    17ff6ff0        b       0x220008556// CHECK-FIX: <__CortexA53843419_222004>:557// CHECK-FIX-NEXT:    24404c:    f9400a41        ldr     x1, [x18, #16]558// CHECK-FIX-NEXT:    244050:    17ff77ee        b       0x222008559// CHECK-FIX: <__CortexA53843419_224000>:560// CHECK-FIX-NEXT:    244054:    f9400e52        ldr     x18, [x18, #24]561// CHECK-FIX-NEXT:    244058:    17ff7feb        b       0x224004562// CHECK-FIX: <__CortexA53843419_226004>:563// CHECK-FIX-NEXT:    24405c:    f94011ea        ldr     x10, [x15, #32]564// CHECK-FIX-NEXT:    244060:    17ff87ea        b       0x226008565// CHECK-FIX: <__CortexA53843419_228000>:566// CHECK-FIX-NEXT:    244064:    f940160d        ldr     x13, [x16, #40]567// CHECK-FIX-NEXT:    244068:    17ff8fe7        b       0x228004568// CHECK-FIX: <__CortexA53843419_22A004>:569// CHECK-FIX-NEXT:    24406c:    f9400ce9        ldr     x9, [x7, #24]570// CHECK-FIX-NEXT:    244070:    17ff97e6        b       0x22a008571// CHECK-FIX: <__CortexA53843419_22C004>:572// CHECK-FIX-NEXT:    244074:    f94012f6        ldr     x22, [x23, #32]573// CHECK-FIX-NEXT:    244078:    17ff9fe4        b       0x22c008574// CHECK-FIX: <__CortexA53843419_22E000>:575// CHECK-FIX-NEXT:    24407c:    f94016f8        ldr     x24, [x23, #40]576// CHECK-FIX-NEXT:    244080:    17ffa7e1        b       0x22e004577// CHECK-FIX: <__CortexA53843419_230004>:578// CHECK-FIX-NEXT:    244084:    f9400002        ldr     x2, [x0]579// CHECK-FIX-NEXT:    244088:    17ffafe0        b       0x230008580// CHECK-FIX: <__CortexA53843419_232008>:581// CHECK-FIX-NEXT:    24408c:    f900079b        str     x27, [x28, #8]582// CHECK-FIX-NEXT:    244090:    17ffb7df        b       0x23200c583// CHECK-FIX: <__CortexA53843419_234004>:584// CHECK-FIX-NEXT:    244094:    f9400a0e        ldr     x14, [x16, #16]585// CHECK-FIX-NEXT:    244098:    17ffbfdc        b       0x234008586// CHECK-FIX: <__CortexA53843419_236004>:587// CHECK-FIX-NEXT:    24409c:    f940060e        ldr     x14, [x16, #8]588// CHECK-FIX-NEXT:    2440a0:    17ffc7da        b       0x236008589// CHECK-FIX: <__CortexA53843419_238004>:590// CHECK-FIX-NEXT:    2440a4:    f940060e        ldr     x14, [x16, #8]591// CHECK-FIX-NEXT:    2440a8:    17ffcfd8        b       0x238008592// CHECK-FIX: <__CortexA53843419_23A008>:593// CHECK-FIX-NEXT:    2440ac:    f940060e        ldr     x14, [x16, #8]594// CHECK-FIX-NEXT:    2440b0:    17ffd7d7        b       0x23a00c595// CHECK-FIX: <__CortexA53843419_23C008>:596// CHECK-FIX-NEXT:    2440b4:    f94000ea        ldr     x10, [x7]597// CHECK-FIX-NEXT:    2440b8:    17ffdfd5        b       0x23c00c598// CHECK-FIX: <__CortexA53843419_23E008>:599// CHECK-FIX-NEXT:    2440bc:    f93fff18        str     x24, [x24, #32760]600// CHECK-FIX-NEXT:    2440c0:    17ffe7d3        b       0x23e00c601// CHECK-FIX: <__CortexA53843419_240000>:602// CHECK-FIX-NEXT:    2440c4:    f9400801        ldr     x1, [x0, #16]603// CHECK-FIX-NEXT:    2440c8:    17ffefcf        b       0x240004604// CHECK-FIX: <__CortexA53843419_242000>:605// CHECK-FIX-NEXT:    2440cc:    f9400801        ldr     x1, [x0, #16]606// CHECK-FIX-NEXT:    2440d0:    17fff7cd        b       0x242004607// CHECK-FIX: <__CortexA53843419_244000>:608// CHECK-FIX-NEXT:    2440d4:    f9400801        ldr     x1, [x0, #16]609// CHECK-FIX-NEXT:    2440d8:    17ffffcb        b       0x244004610        .data611        .globl dat1612        .globl dat2613        .globl dat3614dat1:   .quad 1615dat2:   .quad 2616dat3:   .quad 3617