root/arch/arm64/kernel/reloc_test_syms.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) 2017 Linaro, Ltd. <ard.biesheuvel@linaro.org>
   4  */
   5 
   6 #include <linux/linkage.h>
   7 
   8 ENTRY(absolute_data64)
   9         ldr     x0, 0f
  10         ret
  11 0:      .quad   sym64_abs
  12 ENDPROC(absolute_data64)
  13 
  14 ENTRY(absolute_data32)
  15         ldr     w0, 0f
  16         ret
  17 0:      .long   sym32_abs
  18 ENDPROC(absolute_data32)
  19 
  20 ENTRY(absolute_data16)
  21         adr     x0, 0f
  22         ldrh    w0, [x0]
  23         ret
  24 0:      .short  sym16_abs, 0
  25 ENDPROC(absolute_data16)
  26 
  27 ENTRY(signed_movw)
  28         movz    x0, #:abs_g2_s:sym64_abs
  29         movk    x0, #:abs_g1_nc:sym64_abs
  30         movk    x0, #:abs_g0_nc:sym64_abs
  31         ret
  32 ENDPROC(signed_movw)
  33 
  34 ENTRY(unsigned_movw)
  35         movz    x0, #:abs_g3:sym64_abs
  36         movk    x0, #:abs_g2_nc:sym64_abs
  37         movk    x0, #:abs_g1_nc:sym64_abs
  38         movk    x0, #:abs_g0_nc:sym64_abs
  39         ret
  40 ENDPROC(unsigned_movw)
  41 
  42         .align  12
  43         .space  0xff8
  44 ENTRY(relative_adrp)
  45         adrp    x0, sym64_rel
  46         add     x0, x0, #:lo12:sym64_rel
  47         ret
  48 ENDPROC(relative_adrp)
  49 
  50         .align  12
  51         .space  0xffc
  52 ENTRY(relative_adrp_far)
  53         adrp    x0, memstart_addr
  54         add     x0, x0, #:lo12:memstart_addr
  55         ret
  56 ENDPROC(relative_adrp_far)
  57 
  58 ENTRY(relative_adr)
  59         adr     x0, sym64_rel
  60         ret
  61 ENDPROC(relative_adr)
  62 
  63 ENTRY(relative_data64)
  64         adr     x1, 0f
  65         ldr     x0, [x1]
  66         add     x0, x0, x1
  67         ret
  68 0:      .quad   sym64_rel - .
  69 ENDPROC(relative_data64)
  70 
  71 ENTRY(relative_data32)
  72         adr     x1, 0f
  73         ldr     w0, [x1]
  74         add     x0, x0, x1
  75         ret
  76 0:      .long   sym64_rel - .
  77 ENDPROC(relative_data32)
  78 
  79 ENTRY(relative_data16)
  80         adr     x1, 0f
  81         ldrsh   w0, [x1]
  82         add     x0, x0, x1
  83         ret
  84 0:      .short  sym64_rel - ., 0
  85 ENDPROC(relative_data16)

/* [<][>][^][v][top][bottom][index][help] */