Index: uspace/lib/c/arch/sparc64/src/entry.S
===================================================================
--- uspace/lib/c/arch/sparc64/src/entry.S	(revision a35a3d819d4e2e4e35964eea617087b5c6431b02)
+++ uspace/lib/c/arch/sparc64/src/entry.S	(revision f712a858b9463dae30e9eee5ef1ccc54ae618f02)
@@ -47,6 +47,4 @@
 
 	# Pass pcb_ptr as the first argument to __main()
+	call __main
 	mov %i1, %o0
-	sethi %hi(_gp), %l7
-	call __main
-	or %l7, %lo(_gp), %l7
Index: uspace/lib/c/arch/sparc64/src/thread_entry.S
===================================================================
--- uspace/lib/c/arch/sparc64/src/thread_entry.S	(revision a35a3d819d4e2e4e35964eea617087b5c6431b02)
+++ uspace/lib/c/arch/sparc64/src/thread_entry.S	(revision f712a858b9463dae30e9eee5ef1ccc54ae618f02)
@@ -45,9 +45,7 @@
 	# Propagate the input arguments to the new window.
 	#
+
+	call __thread_main		! %o0 contains address of uarg
 	mov %i0, %o0
 
-	sethi %hi(_gp), %l7
-	call __thread_main		! %o0 contains address of uarg
-	or %l7, %lo(_gp), %l7
-
 	! not reached
