OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [glibc/] [sysdeps/] [riscv/] [dl-trampoline.S] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
#include 
2
#include 
3
 
4
/* Assembler veneer called from the PLT header code for lazy loading.
5
   The PLT header passes its own args in t0-t2. */
6
 
7
ENTRY(_dl_runtime_resolve)
8
  # Save arguments to stack.
9
  addi sp, sp, -10*SZREG
10
  REG_S ra, 9*SZREG(sp)
11
  REG_S a0, 1*SZREG(sp)
12
  REG_S a1, 2*SZREG(sp)
13
  REG_S a2, 3*SZREG(sp)
14
  REG_S a3, 4*SZREG(sp)
15
  REG_S a4, 5*SZREG(sp)
16
  REG_S a5, 6*SZREG(sp)
17
  REG_S a6, 7*SZREG(sp)
18
  REG_S a7, 8*SZREG(sp)
19
 
20
  # Update .got.plt and obtain runtime address of callee.
21
  slli a1, t1, 1
22
  mv a0, t0       # link map
23
  add a1, a1, t1  # reloc offset (== thrice the .got.plt offset)
24
  jal _dl_fixup
25
  move t0, a0
26
 
27
  # Restore arguments from stack.
28
  REG_L ra, 9*SZREG(sp)
29
  REG_L a0, 1*SZREG(sp)
30
  REG_L a1, 2*SZREG(sp)
31
  REG_L a2, 3*SZREG(sp)
32
  REG_L a3, 4*SZREG(sp)
33
  REG_L a4, 5*SZREG(sp)
34
  REG_L a5, 6*SZREG(sp)
35
  REG_L a6, 7*SZREG(sp)
36
  REG_L a7, 8*SZREG(sp)
37
  addi sp, sp, 10*SZREG
38
 
39
  # Invoke the callee.
40
  jr t0
41
END(_dl_runtime_resolve)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.