Change the global pointer symbol to __global_pointer$
[riscv-tests.git] / benchmarks / common / crt.S
index be03ebbdb3e6b9a54ea835225d8e89963b3bb1d7..3e6cee44a3330bcd2b616158df0f2af5434bf566 100644 (file)
@@ -15,9 +15,6 @@
   .section ".text.init"
   .globl _start
 _start:
-  la t0, trap_entry
-  csrw mtvec, t0
-
   li  x1, 0
   li  x2, 0
   li  x3, 0
@@ -62,14 +59,16 @@ _start:
 #else
   bltz t0, 1f
 #endif
+2:
   li a0, 1
   sw a0, tohost, t0
+  j 2b
 1:
 
 #ifdef __riscv_flen
   # initialize FPU if we have one
-  andi t0, t0, 1 << ('f' - 'a')
-  beqz t0, 1f
+  la t0, 1f
+  csrw mtvec, t0
 
   fssr    x0
   fmv.s.x f0, x0
@@ -104,12 +103,15 @@ _start:
   fmv.s.x f29,x0
   fmv.s.x f30,x0
   fmv.s.x f31,x0
+1:
 #endif
 
-1:
+  # initialize trap vector
+  la t0, trap_entry
+  csrw mtvec, t0
 
   # initialize global pointer
-  la gp, _gp
+  la gp, __global_pointer$
 
   la  tp, _end + 63
   and tp, tp, -64