Browse Source

Merge #46

46: Assure address of PC at startup. r=Disasm a=elfmimi

PR created upon @Disasm 's request. 

Closes: #44

Need update of library files after merging.

Co-authored-by: Ein Terakawa <applause@elfmimi.jp>
Co-authored-by: Vadim Kaushan <admin@disasm.info>
bors[bot] 5 years ago
parent
commit
c33a988754

+ 19 - 0
riscv-rt/asm.S

@@ -12,6 +12,25 @@
 .global _start
 
 _start:
+    /* Jump to the absolute address defined by the linker script. */
+    // for 32bit
+    .if __riscv_xlen == 32
+    lui ra, %hi(_abs_start)
+    jr %lo(_abs_start)(ra)
+    .endif
+
+    // for 64bit
+    .if __riscv_xlen == 64
+1:
+    auipc ra, %pcrel_hi(1f)
+    ld ra, %pcrel_lo(1b)(ra)
+    jr ra
+    .align  3
+1:
+    .dword _abs_start
+    .endif
+
+_abs_start:
     .cfi_startproc
     .cfi_undefined ra
 

BIN
riscv-rt/bin/riscv32imac-unknown-none-elf.a


BIN
riscv-rt/bin/riscv32imc-unknown-none-elf.a


BIN
riscv-rt/bin/riscv64gc-unknown-none-elf.a


BIN
riscv-rt/bin/riscv64imac-unknown-none-elf.a