Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libffi for openSUSE:Factory checked 
in at 2023-12-09 22:48:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libffi (Old)
 and      /work/SRC/openSUSE:Factory/.libffi.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libffi"

Sat Dec  9 22:48:57 2023 rev:15 rq:1131297 version:3.4.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libffi/libffi.changes    2022-10-26 
12:31:15.288243563 +0200
+++ /work/SRC/openSUSE:Factory/.libffi.new.25432/libffi.changes 2023-12-09 
22:48:58.822257834 +0100
@@ -1,0 +2,7 @@
+Wed Dec  6 09:11:47 UTC 2023 - Guillaume GARDET <guillaume.gar...@opensuse.org>
+
+- Add upstream patches to fix BTI on aarch64:
+  * 808.patch
+  * 810.patch
+
+-------------------------------------------------------------------

New:
----
  808.patch
  810.patch

BETA DEBUG BEGIN:
  New:- Add upstream patches to fix BTI on aarch64:
  * 808.patch
  * 810.patch
  New:  * 808.patch
  * 810.patch
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libffi.spec ++++++
--- /var/tmp/diff_new_pack.mFSVKl/_old  2023-12-09 22:48:59.474281374 +0100
+++ /var/tmp/diff_new_pack.mFSVKl/_new  2023-12-09 22:48:59.474281374 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libffi
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -26,6 +26,9 @@
 URL:            https://sourceware.org/libffi/
 Source:         
https://github.com/libffi/libffi/releases/download/v%{version}/libffi-%{version}.tar.gz
 Source99:       baselibs.conf
+# Fix BTI for aarch64 with PR 808 and 810
+Patch1:         https://github.com/libffi/libffi/pull/808.patch
+Patch2:         https://github.com/libffi/libffi/pull/810.patch
 # for make check
 BuildRequires:  dejagnu
 BuildRequires:  expect

++++++ 808.patch ++++++
>From cdb7b8c44f23d850d0fc5d783cb42f1bc516252f Mon Sep 17 00:00:00 2001
From: Tobias Heider <m...@tobhe.de>
Date: Wed, 22 Nov 2023 15:21:56 +0100
Subject: [PATCH] Add bti intructions to aarch64 assembly to work with strict
 BTI enforcement on OpenBSD.

---
 src/aarch64/ffi.c  |  38 +++++---
 src/aarch64/sysv.S | 223 +++++++++++++++++++++++++++++++++++----------
 2 files changed, 202 insertions(+), 59 deletions(-)

diff --git a/src/aarch64/ffi.c b/src/aarch64/ffi.c
index 6544ac0fe..67b18fbfb 100644
--- a/src/aarch64/ffi.c
+++ b/src/aarch64/ffi.c
@@ -390,47 +390,59 @@ extend_hfa_type (void *dest, void *src, int h)
        "adr    %0, 0f\n"
 "      add     %0, %0, %1\n"
 "      br      %0\n"
-"0:    ldp     s16, s17, [%3]\n"       /* S4 */
+"0:    bti     j\n"                    /* S4 */
+"      ldp     s16, s17, [%3]\n"
 "      ldp     s18, s19, [%3, #8]\n"
 "      b       4f\n"
-"      ldp     s16, s17, [%3]\n"       /* S3 */
+"      bti     j\n"                    /* S3 */
+"      ldp     s16, s17, [%3]\n"
 "      ldr     s18, [%3, #8]\n"
 "      b       3f\n"
-"      ldp     s16, s17, [%3]\n"       /* S2 */
+"      bti     j\n"                    /* S2 */
+"      ldp     s16, s17, [%3]\n"
 "      b       2f\n"
 "      nop\n"
-"      ldr     s16, [%3]\n"            /* S1 */
+"      bti     j\n"                    /* S1 */
+"      ldr     s16, [%3]\n"
 "      b       1f\n"
 "      nop\n"
-"      ldp     d16, d17, [%3]\n"       /* D4 */
+"      bti     j\n"                    /* D4 */
+"      ldp     d16, d17, [%3]\n"
 "      ldp     d18, d19, [%3, #16]\n"
 "      b       4f\n"
-"      ldp     d16, d17, [%3]\n"       /* D3 */
+"      bti     j\n"                    /* D3 */
+"      ldp     d16, d17, [%3]\n"
 "      ldr     d18, [%3, #16]\n"
 "      b       3f\n"
-"      ldp     d16, d17, [%3]\n"       /* D2 */
+"      bti     j\n"                    /* D2 */
+"      ldp     d16, d17, [%3]\n"
 "      b       2f\n"
 "      nop\n"
-"      ldr     d16, [%3]\n"            /* D1 */
+"      bti     j\n"                    /* D1 */
+"      ldr     d16, [%3]\n"
 "      b       1f\n"
 "      nop\n"
-"      ldp     q16, q17, [%3]\n"       /* Q4 */
+"      bti     j\n"                    /* Q4 */
+"      ldp     q16, q17, [%3]\n"
 "      ldp     q18, q19, [%3, #32]\n"
 "      b       4f\n"
-"      ldp     q16, q17, [%3]\n"       /* Q3 */
+"      bti     j\n"                    /* Q3 */
+"      ldp     q16, q17, [%3]\n"
 "      ldr     q18, [%3, #32]\n"
 "      b       3f\n"
-"      ldp     q16, q17, [%3]\n"       /* Q2 */
+"      bti     j\n"                    /* Q2 */
+"      ldp     q16, q17, [%3]\n"
 "      b       2f\n"
 "      nop\n"
-"      ldr     q16, [%3]\n"            /* Q1 */
+"      bti     j\n"                    /* Q1 */
+"      ldr     q16, [%3]\n"
 "      b       1f\n"
 "4:    str     q19, [%2, #48]\n"
 "3:    str     q18, [%2, #32]\n"
 "2:    str     q17, [%2, #16]\n"
 "1:    str     q16, [%2]"
     : "=&r"(x0)
-    : "r"(f * 12), "r"(dest), "r"(src)
+    : "r"(f * 16), "r"(dest), "r"(src)
     : "memory", "v16", "v17", "v18", "v19");
 }
 #endif
diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
index 286f1f137..9f4188e00 100644
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -84,6 +84,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 
        cfi_startproc
 CNAME(ffi_call_SYSV):
+       bti     c
        /* Sign the lr with x1 since that is where it will be stored */
        SIGN_LR_WITH_REG(x1)
 
@@ -144,78 +145,142 @@ CNAME(ffi_call_SYSV):
        /* Save the return value as directed.  */
        adr     x5, 0f
        and     w4, w4, #AARCH64_RET_MASK
-       add     x5, x5, x4, lsl #3
+       add     x5, x5, x4, lsl #4
        br      x5
 
-       /* Note that each table entry is 2 insns, and thus 8 bytes.
+       /* Note that each table entry is 4 insns, and thus 16 bytes.
           For integer data, note that we're storing into ffi_arg
           and therefore we want to extend to 64 bits; these types
           have two consecutive entries allocated for them.  */
        .align  4
-0:     b 99f                           /* VOID */
+0:     bti     j                       /* VOID */
+       b 99f
+       nop 
        nop
-1:     str     x0, [x3]                /* INT64 */
+1:     bti     j                       /* INT64 */
+       str     x0, [x3]
        b 99f
-2:     stp     x0, x1, [x3]            /* INT128 */
+       nop
+2:     bti     j                       /* INT128 */
+       stp     x0, x1, [x3]
        b 99f
+       nop
 3:     brk     #1000                   /* UNUSED */
        b 99f
+       nop
+       nop
 4:     brk     #1000                   /* UNUSED */
        b 99f
+       nop
+       nop
 5:     brk     #1000                   /* UNUSED */
        b 99f
+       nop
+       nop
 6:     brk     #1000                   /* UNUSED */
        b 99f
+       nop
+       nop
 7:     brk     #1000                   /* UNUSED */
        b 99f
-8:     st4     { v0.s, v1.s, v2.s, v3.s }[0], [x3]     /* S4 */
+       nop
+       nop
+8:     bti     j                       /* S4 */
+       st4     { v0.s, v1.s, v2.s, v3.s }[0], [x3]
        b 99f
-9:     st3     { v0.s, v1.s, v2.s }[0], [x3]   /* S3 */
+       nop
+9:     bti     j                       /* S3 */
+       st3     { v0.s, v1.s, v2.s }[0], [x3]
        b 99f
-10:    stp     s0, s1, [x3]            /* S2 */
+       nop
+10:    bti     j                       /* S2 */
+       stp     s0, s1, [x3]
        b 99f
-11:    str     s0, [x3]                /* S1 */
+       nop
+11:    bti     j
+       str     s0, [x3]                /* S1 */
        b 99f
-12:    st4     { v0.d, v1.d, v2.d, v3.d }[0], [x3]     /* D4 */
+       nop
+12:    bti     j                       /* D4 */
+       st4     { v0.d, v1.d, v2.d, v3.d }[0], [x3]
        b 99f
-13:    st3     { v0.d, v1.d, v2.d }[0], [x3]   /* D3 */
+       nop
+13:    bti     j                       /* D3 */
+       st3     { v0.d, v1.d, v2.d }[0], [x3]
        b 99f
-14:    stp     d0, d1, [x3]            /* D2 */
+       nop
+14:    bti     j                       /* D2 */
+       stp     d0, d1, [x3]
        b 99f
-15:    str     d0, [x3]                /* D1 */
+       nop
+15:    bti     j                       /* D1 */
+       str     d0, [x3]
        b 99f
-16:    str     q3, [x3, #48]           /* Q4 */
        nop
-17:    str     q2, [x3, #32]           /* Q3 */
+16:    bti     j                       /* Q4 */
+       str     q3, [x3, #48]
+       nop
        nop
-18:    stp     q0, q1, [x3]            /* Q2 */
+17:    bti     j                       /* Q3 */
+       str     q2, [x3, #32]
+       nop
+       nop
+18:    bti     j                       /* Q2 */
+       stp     q0, q1, [x3]
        b 99f
-19:    str     q0, [x3]                /* Q1 */
+       nop
+19:    bti     j                       /* Q1 */
+       str     q0, [x3]
        b 99f
-20:    uxtb    w0, w0                  /* UINT8 */
+       nop
+20:    bti     j                       /* UINT8 */
+       uxtb    w0, w0
        str     x0, [x3]
+       nop
 21:    b 99f                           /* reserved */
        nop
-22:    uxth    w0, w0                  /* UINT16 */
+       nop
+       nop
+22:    bti     j                       /* UINT16 */
+       uxth    w0, w0
        str     x0, [x3]
+       nop
 23:    b 99f                           /* reserved */
        nop
-24:    mov     w0, w0                  /* UINT32 */
+       nop
+       nop
+24:    bti     j                       /* UINT32 */
+       mov     w0, w0
        str     x0, [x3]
+       nop
 25:    b 99f                           /* reserved */
        nop
-26:    sxtb    x0, w0                  /* SINT8 */
+       nop
+       nop
+26:    bti     j                       /* SINT8 */
+       sxtb    x0, w0
        str     x0, [x3]
+       nop
 27:    b 99f                           /* reserved */
        nop
-28:    sxth    x0, w0                  /* SINT16 */
+       nop
+       nop
+28:    bti     j                       /* SINT16 */
+       sxth    x0, w0
        str     x0, [x3]
+       nop
 29:    b 99f                           /* reserved */
        nop
-30:    sxtw    x0, w0                  /* SINT32 */
+       nop
+       nop
+30:    bti     j                       /* SINT32 */
+       sxtw    x0, w0
        str     x0, [x3]
+       nop
 31:    b 99f                           /* reserved */
        nop
+       nop
+       nop
 
        /* Return now that result has been populated. */
 99:
@@ -252,6 +317,7 @@ CNAME(ffi_call_SYSV):
        .align 4
 CNAME(ffi_closure_SYSV_V):
        cfi_startproc
+       bti     c
        SIGN_LR
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
@@ -276,6 +342,7 @@ CNAME(ffi_closure_SYSV_V):
        .align  4
        cfi_startproc
 CNAME(ffi_closure_SYSV):
+       bti     c
        SIGN_LR
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
@@ -305,73 +372,135 @@ L(do_closure):
        /* Load the return value as directed.  */
        adr     x1, 0f
        and     w0, w0, #AARCH64_RET_MASK
-       add     x1, x1, x0, lsl #3
+       add     x1, x1, x0, lsl #4
        add     x3, sp, #16+CALL_CONTEXT_SIZE
        br      x1
 
-       /* Note that each table entry is 2 insns, and thus 8 bytes.  */
+       /* Note that each table entry is 4 insns, and thus 16 bytes.  */
        .align  4
-0:     b       99f                     /* VOID */
+0:     bti     j                       /* VOID */
+       b       99f
+       nop
        nop
-1:     ldr     x0, [x3]                /* INT64 */
+1:     bti     j                       /* INT64 */
+       ldr     x0, [x3]
        b       99f
-2:     ldp     x0, x1, [x3]            /* INT128 */
+       nop
+2:     bti     j                       /* INT128 */
+       ldp     x0, x1, [x3]
        b       99f
+       nop
 3:     brk     #1000                   /* UNUSED */
        nop
+       nop
+       nop
 4:     brk     #1000                   /* UNUSED */
        nop
+       nop
+       nop
 5:     brk     #1000                   /* UNUSED */
        nop
+       nop
+       nop
 6:     brk     #1000                   /* UNUSED */
        nop
+       nop
+       nop
 7:     brk     #1000                   /* UNUSED */
        nop
-8:     ldr     s3, [x3, #12]           /* S4 */
        nop
-9:     ldr     s2, [x3, #8]            /* S3 */
        nop
-10:    ldp     s0, s1, [x3]            /* S2 */
+8:     bti     j                       /* S4 */
+       ldr     s3, [x3, #12]
+       nop
+       nop
+9:     bti     j                       /* S3 */
+       ldr     s2, [x3, #8]
+       nop
+       nop
+10:    bti     j                       /* S2 */
+       ldp     s0, s1, [x3]
        b       99f
-11:    ldr     s0, [x3]                /* S1 */
+       nop
+11:    bti     j                       /* S1 */
+       ldr     s0, [x3]
        b       99f
-12:    ldr     d3, [x3, #24]           /* D4 */
        nop
-13:    ldr     d2, [x3, #16]           /* D3 */
+12:    bti     j                       /* D4 */
+       ldr     d3, [x3, #24]
+       nop
+       nop
+13:    bti     j                       /* D3 */
+       ldr     d2, [x3, #16]
        nop
-14:    ldp     d0, d1, [x3]            /* D2 */
+       nop
+14:    bti     j                       /* D2 */
+       ldp     d0, d1, [x3]
        b       99f
-15:    ldr     d0, [x3]                /* D1 */
+       nop
+15:    bti     j                       /* D1 */
+       ldr     d0, [x3]
        b       99f
-16:    ldr     q3, [x3, #48]           /* Q4 */
        nop
-17:    ldr     q2, [x3, #32]           /* Q3 */
+16:    bti     j                       /* Q4 */
+       ldr     q3, [x3, #48]
        nop
-18:    ldp     q0, q1, [x3]            /* Q2 */
+       nop
+17:    bti     j                       /* Q3 */
+       ldr     q2, [x3, #32]
+       nop
+       nop
+18:    bti     j                       /* Q2 */
+       ldp     q0, q1, [x3]
        b       99f
-19:    ldr     q0, [x3]                /* Q1 */
+       nop
+19:    bti     j                       /* Q1 */
+       ldr     q0, [x3]
        b       99f
-20:    ldrb    w0, [x3, #BE(7)]        /* UINT8 */
+       nop
+20:    bti     j                       /* UINT8 */
+       ldrb    w0, [x3, #BE(7)]
        b       99f
+       nop
 21:    brk     #1000                   /* reserved */
        nop
-22:    ldrh    w0, [x3, #BE(6)]        /* UINT16 */
+       nop
+       nop
+22:    bti     j                       /* UINT16 */
+       ldrh    w0, [x3, #BE(6)]
        b       99f
+       nop
 23:    brk     #1000                   /* reserved */
        nop
-24:    ldr     w0, [x3, #BE(4)]        /* UINT32 */
+       nop
+       nop
+24:    bti     j                       /* UINT32 */
+       ldr     w0, [x3, #BE(4)]
        b       99f
+       nop
 25:    brk     #1000                   /* reserved */
        nop
-26:    ldrsb   x0, [x3, #BE(7)]        /* SINT8 */
+       nop
+       nop
+26:    bti     j                       /* SINT8 */
+       ldrsb   x0, [x3, #BE(7)]
        b       99f
+       nop
 27:    brk     #1000                   /* reserved */
        nop
-28:    ldrsh   x0, [x3, #BE(6)]        /* SINT16 */
+       nop
+       nop
+28:    bti     j                       /* SINT16 */
+       ldrsh   x0, [x3, #BE(6)]
        b       99f
+       nop
 29:    brk     #1000                   /* reserved */
        nop
-30:    ldrsw   x0, [x3, #BE(4)]        /* SINT32 */
+       nop
+       nop
+30:    bti     j                       /* SINT32 */
+       ldrsw   x0, [x3, #BE(4)]
+       nop
        nop
 31:                                    /* reserved */
 99:    ldp     x29, x30, [sp], #ffi_closure_SYSV_FS
@@ -485,6 +614,7 @@ CNAME(ffi_closure_trampoline_table_page):
        .align 4
 CNAME(ffi_go_closure_SYSV_V):
        cfi_startproc
+       bti     c
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
        cfi_rel_offset (x29, 0)
@@ -508,6 +638,7 @@ CNAME(ffi_go_closure_SYSV_V):
        .align  4
        cfi_startproc
 CNAME(ffi_go_closure_SYSV):
+       bti     c
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
        cfi_rel_offset (x29, 0)

++++++ 810.patch ++++++
>From ad3b42caa238330e872ae32adea55defe7a14286 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <mar...@martin.st>
Date: Mon, 27 Nov 2023 00:39:21 +0200
Subject: [PATCH] aarch64: Write the BTI instructions as "hint" instructions

GNU binutils refuses to assemble the direct BTI instructions unless
the target architecture explicitly supports BTI, ending up with errors
such as

    ../src/aarch64/sysv.S: Assembler messages:
    ../src/aarch64/sysv.S:87: Error: selected processor does not support `bti c'
    ../src/aarch64/sysv.S:156: Error: selected processor does not support `bti 
j'

Building with -march=armv8.5-a fixes building this.

However, the BTI instructions assemble into hint instructions, that
are ignored by processors that don't implement them. Therefore it is
possible to assemble them for the baseline armv8.0-a target as well,
by replacing "bti j" with "hint #36", "bti c" with "hint #34" and
"bti jc" with "hint #38"; this assembles into the same instruction
bits.
---
 src/aarch64/ffi.c  | 25 ++++++------
 src/aarch64/sysv.S | 97 ++++++++++++++++++++++++----------------------
 2 files changed, 63 insertions(+), 59 deletions(-)

diff --git a/src/aarch64/ffi.c b/src/aarch64/ffi.c
index 67b18fbf..8661a352 100644
--- a/src/aarch64/ffi.c
+++ b/src/aarch64/ffi.c
@@ -386,55 +386,56 @@ extend_hfa_type (void *dest, void *src, int h)
   ssize_t f = h - AARCH64_RET_S4;
   void *x0;
 
+#define BTI_J "hint #36"
   asm volatile (
        "adr    %0, 0f\n"
 "      add     %0, %0, %1\n"
 "      br      %0\n"
-"0:    bti     j\n"                    /* S4 */
+"0:    "BTI_J"\n"                      /* S4 */
 "      ldp     s16, s17, [%3]\n"
 "      ldp     s18, s19, [%3, #8]\n"
 "      b       4f\n"
-"      bti     j\n"                    /* S3 */
+"      "BTI_J"\n"                      /* S3 */
 "      ldp     s16, s17, [%3]\n"
 "      ldr     s18, [%3, #8]\n"
 "      b       3f\n"
-"      bti     j\n"                    /* S2 */
+"      "BTI_J"\n"                      /* S2 */
 "      ldp     s16, s17, [%3]\n"
 "      b       2f\n"
 "      nop\n"
-"      bti     j\n"                    /* S1 */
+"      "BTI_J"\n"                      /* S1 */
 "      ldr     s16, [%3]\n"
 "      b       1f\n"
 "      nop\n"
-"      bti     j\n"                    /* D4 */
+"      "BTI_J"\n"                      /* D4 */
 "      ldp     d16, d17, [%3]\n"
 "      ldp     d18, d19, [%3, #16]\n"
 "      b       4f\n"
-"      bti     j\n"                    /* D3 */
+"      "BTI_J"\n"                      /* D3 */
 "      ldp     d16, d17, [%3]\n"
 "      ldr     d18, [%3, #16]\n"
 "      b       3f\n"
-"      bti     j\n"                    /* D2 */
+"      "BTI_J"\n"                      /* D2 */
 "      ldp     d16, d17, [%3]\n"
 "      b       2f\n"
 "      nop\n"
-"      bti     j\n"                    /* D1 */
+"      "BTI_J"\n"                      /* D1 */
 "      ldr     d16, [%3]\n"
 "      b       1f\n"
 "      nop\n"
-"      bti     j\n"                    /* Q4 */
+"      "BTI_J"\n"                      /* Q4 */
 "      ldp     q16, q17, [%3]\n"
 "      ldp     q18, q19, [%3, #32]\n"
 "      b       4f\n"
-"      bti     j\n"                    /* Q3 */
+"      "BTI_J"\n"                      /* Q3 */
 "      ldp     q16, q17, [%3]\n"
 "      ldr     q18, [%3, #32]\n"
 "      b       3f\n"
-"      bti     j\n"                    /* Q2 */
+"      "BTI_J"\n"                      /* Q2 */
 "      ldp     q16, q17, [%3]\n"
 "      b       2f\n"
 "      nop\n"
-"      bti     j\n"                    /* Q1 */
+"      "BTI_J"\n"                      /* Q1 */
 "      ldr     q16, [%3]\n"
 "      b       1f\n"
 "4:    str     q19, [%2, #48]\n"
diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
index 9f4188e0..90816752 100644
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -64,6 +64,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 #define PTR_SIZE       8
 #endif
 
+#define BTI_C hint #34
+#define BTI_J hint #36
+
        .text
        .align 4
 
@@ -84,7 +87,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 
        cfi_startproc
 CNAME(ffi_call_SYSV):
-       bti     c
+       BTI_C
        /* Sign the lr with x1 since that is where it will be stored */
        SIGN_LR_WITH_REG(x1)
 
@@ -153,15 +156,15 @@ CNAME(ffi_call_SYSV):
           and therefore we want to extend to 64 bits; these types
           have two consecutive entries allocated for them.  */
        .align  4
-0:     bti     j                       /* VOID */
+0:     BTI_J                           /* VOID */
        b 99f
        nop 
        nop
-1:     bti     j                       /* INT64 */
+1:     BTI_J                           /* INT64 */
        str     x0, [x3]
        b 99f
        nop
-2:     bti     j                       /* INT128 */
+2:     BTI_J                           /* INT128 */
        stp     x0, x1, [x3]
        b 99f
        nop
@@ -185,55 +188,55 @@ CNAME(ffi_call_SYSV):
        b 99f
        nop
        nop
-8:     bti     j                       /* S4 */
+8:     BTI_J                           /* S4 */
        st4     { v0.s, v1.s, v2.s, v3.s }[0], [x3]
        b 99f
        nop
-9:     bti     j                       /* S3 */
+9:     BTI_J                           /* S3 */
        st3     { v0.s, v1.s, v2.s }[0], [x3]
        b 99f
        nop
-10:    bti     j                       /* S2 */
+10:    BTI_J                           /* S2 */
        stp     s0, s1, [x3]
        b 99f
        nop
-11:    bti     j
+11:    BTI_J
        str     s0, [x3]                /* S1 */
        b 99f
        nop
-12:    bti     j                       /* D4 */
+12:    BTI_J                           /* D4 */
        st4     { v0.d, v1.d, v2.d, v3.d }[0], [x3]
        b 99f
        nop
-13:    bti     j                       /* D3 */
+13:    BTI_J                           /* D3 */
        st3     { v0.d, v1.d, v2.d }[0], [x3]
        b 99f
        nop
-14:    bti     j                       /* D2 */
+14:    BTI_J                           /* D2 */
        stp     d0, d1, [x3]
        b 99f
        nop
-15:    bti     j                       /* D1 */
+15:    BTI_J                           /* D1 */
        str     d0, [x3]
        b 99f
        nop
-16:    bti     j                       /* Q4 */
+16:    BTI_J                           /* Q4 */
        str     q3, [x3, #48]
        nop
        nop
-17:    bti     j                       /* Q3 */
+17:    BTI_J                           /* Q3 */
        str     q2, [x3, #32]
        nop
        nop
-18:    bti     j                       /* Q2 */
+18:    BTI_J                           /* Q2 */
        stp     q0, q1, [x3]
        b 99f
        nop
-19:    bti     j                       /* Q1 */
+19:    BTI_J                           /* Q1 */
        str     q0, [x3]
        b 99f
        nop
-20:    bti     j                       /* UINT8 */
+20:    BTI_J                           /* UINT8 */
        uxtb    w0, w0
        str     x0, [x3]
        nop
@@ -241,7 +244,7 @@ CNAME(ffi_call_SYSV):
        nop
        nop
        nop
-22:    bti     j                       /* UINT16 */
+22:    BTI_J                           /* UINT16 */
        uxth    w0, w0
        str     x0, [x3]
        nop
@@ -249,7 +252,7 @@ CNAME(ffi_call_SYSV):
        nop
        nop
        nop
-24:    bti     j                       /* UINT32 */
+24:    BTI_J                           /* UINT32 */
        mov     w0, w0
        str     x0, [x3]
        nop
@@ -257,7 +260,7 @@ CNAME(ffi_call_SYSV):
        nop
        nop
        nop
-26:    bti     j                       /* SINT8 */
+26:    BTI_J                           /* SINT8 */
        sxtb    x0, w0
        str     x0, [x3]
        nop
@@ -265,7 +268,7 @@ CNAME(ffi_call_SYSV):
        nop
        nop
        nop
-28:    bti     j                       /* SINT16 */
+28:    BTI_J                           /* SINT16 */
        sxth    x0, w0
        str     x0, [x3]
        nop
@@ -273,7 +276,7 @@ CNAME(ffi_call_SYSV):
        nop
        nop
        nop
-30:    bti     j                       /* SINT32 */
+30:    BTI_J                           /* SINT32 */
        sxtw    x0, w0
        str     x0, [x3]
        nop
@@ -317,7 +320,7 @@ CNAME(ffi_call_SYSV):
        .align 4
 CNAME(ffi_closure_SYSV_V):
        cfi_startproc
-       bti     c
+       BTI_C
        SIGN_LR
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
@@ -342,7 +345,7 @@ CNAME(ffi_closure_SYSV_V):
        .align  4
        cfi_startproc
 CNAME(ffi_closure_SYSV):
-       bti     c
+       BTI_C
        SIGN_LR
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
@@ -378,15 +381,15 @@ L(do_closure):
 
        /* Note that each table entry is 4 insns, and thus 16 bytes.  */
        .align  4
-0:     bti     j                       /* VOID */
+0:     BTI_J                           /* VOID */
        b       99f
        nop
        nop
-1:     bti     j                       /* INT64 */
+1:     BTI_J                           /* INT64 */
        ldr     x0, [x3]
        b       99f
        nop
-2:     bti     j                       /* INT128 */
+2:     BTI_J                           /* INT128 */
        ldp     x0, x1, [x3]
        b       99f
        nop
@@ -410,55 +413,55 @@ L(do_closure):
        nop
        nop
        nop
-8:     bti     j                       /* S4 */
+8:     BTI_J                           /* S4 */
        ldr     s3, [x3, #12]
        nop
        nop
-9:     bti     j                       /* S3 */
+9:     BTI_J                           /* S3 */
        ldr     s2, [x3, #8]
        nop
        nop
-10:    bti     j                       /* S2 */
+10:    BTI_J                           /* S2 */
        ldp     s0, s1, [x3]
        b       99f
        nop
-11:    bti     j                       /* S1 */
+11:    BTI_J                           /* S1 */
        ldr     s0, [x3]
        b       99f
        nop
-12:    bti     j                       /* D4 */
+12:    BTI_J                           /* D4 */
        ldr     d3, [x3, #24]
        nop
        nop
-13:    bti     j                       /* D3 */
+13:    BTI_J                           /* D3 */
        ldr     d2, [x3, #16]
        nop
        nop
-14:    bti     j                       /* D2 */
+14:    BTI_J                           /* D2 */
        ldp     d0, d1, [x3]
        b       99f
        nop
-15:    bti     j                       /* D1 */
+15:    BTI_J                           /* D1 */
        ldr     d0, [x3]
        b       99f
        nop
-16:    bti     j                       /* Q4 */
+16:    BTI_J                           /* Q4 */
        ldr     q3, [x3, #48]
        nop
        nop
-17:    bti     j                       /* Q3 */
+17:    BTI_J                           /* Q3 */
        ldr     q2, [x3, #32]
        nop
        nop
-18:    bti     j                       /* Q2 */
+18:    BTI_J                           /* Q2 */
        ldp     q0, q1, [x3]
        b       99f
        nop
-19:    bti     j                       /* Q1 */
+19:    BTI_J                           /* Q1 */
        ldr     q0, [x3]
        b       99f
        nop
-20:    bti     j                       /* UINT8 */
+20:    BTI_J                           /* UINT8 */
        ldrb    w0, [x3, #BE(7)]
        b       99f
        nop
@@ -466,7 +469,7 @@ L(do_closure):
        nop
        nop
        nop
-22:    bti     j                       /* UINT16 */
+22:    BTI_J                           /* UINT16 */
        ldrh    w0, [x3, #BE(6)]
        b       99f
        nop
@@ -474,7 +477,7 @@ L(do_closure):
        nop
        nop
        nop
-24:    bti     j                       /* UINT32 */
+24:    BTI_J                           /* UINT32 */
        ldr     w0, [x3, #BE(4)]
        b       99f
        nop
@@ -482,7 +485,7 @@ L(do_closure):
        nop
        nop
        nop
-26:    bti     j                       /* SINT8 */
+26:    BTI_J                           /* SINT8 */
        ldrsb   x0, [x3, #BE(7)]
        b       99f
        nop
@@ -490,7 +493,7 @@ L(do_closure):
        nop
        nop
        nop
-28:    bti     j                       /* SINT16 */
+28:    BTI_J                           /* SINT16 */
        ldrsh   x0, [x3, #BE(6)]
        b       99f
        nop
@@ -498,7 +501,7 @@ L(do_closure):
        nop
        nop
        nop
-30:    bti     j                       /* SINT32 */
+30:    BTI_J                           /* SINT32 */
        ldrsw   x0, [x3, #BE(4)]
        nop
        nop
@@ -614,7 +617,7 @@ CNAME(ffi_closure_trampoline_table_page):
        .align 4
 CNAME(ffi_go_closure_SYSV_V):
        cfi_startproc
-       bti     c
+       BTI_C
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
        cfi_rel_offset (x29, 0)
@@ -638,7 +641,7 @@ CNAME(ffi_go_closure_SYSV_V):
        .align  4
        cfi_startproc
 CNAME(ffi_go_closure_SYSV):
-       bti     c
+       BTI_C
        stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
        cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
        cfi_rel_offset (x29, 0)

Reply via email to