unistd: Improve fortify with clang
[glibc.git] / sysdeps / x86_64 / tst-quadmod2.S
blobee709edc225264285bd4bd61b0e211436075c59c
1 /* Copyright (C) 2012-2024 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
18 #ifndef BIAS
19 # define BIAS 0x7fff0000
20 #endif
22         .section        .data.rel.local,"aw",@progbits
23         .align 8
24 .Ljmp:
25         .quad   func + BIAS
26         .text
27         .type   func, @function
28 func:
29         .cfi_startproc
30 #if defined __CET__ && (__CET__ & 1) != 0
31         endbr64
32 #endif
33         xorl    %edi, %edi
34         jmp     exit@PLT
35         .cfi_endproc
36         .size   func, .-func
37         .globl  foo
38         .type   foo, @function
39 foo:
40         .cfi_startproc
41         .cfi_def_cfa_register 6
42 #if defined __CET__ && (__CET__ & 1) != 0
43         endbr64
44 #endif
45         movq    .Ljmp(%rip), %rax
46         subq    $BIAS, %rax
47         jmp     *%rax
48         .cfi_endproc
49         .size   foo, .-foo