Index: boot/arch/sparc32/src/asm.S
===================================================================
--- boot/arch/sparc32/src/asm.S	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ boot/arch/sparc32/src/asm.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -27,16 +27,10 @@
 #
 
+#include <abi/asmtool.h>
 #include <arch/arch.h>
 
 .section BOOTSTRAP
 
-.global start
-.global boot_pt
-.global boot_ctx_table
-.global boot_stack
-.global halt
-.global jump_to_kernel
-
-start:
+SYMBOL(start)
 	b bootstrap
 	nop
@@ -44,23 +38,25 @@
 .section BOOTPT
 .align 4096
-boot_pt:
+SYMBOL(boot_pt)
 	.space PTL0_ENTRIES * PTL0_ENTRY_SIZE
 
-boot_ctx_table:
+SYMBOL(boot_ctx_table)
 	.space 4
 
 .section BOOTSTACK
 	.space 4096
-boot_stack:
+SYMBOL(boot_stack)
 
 .text
 
-halt:
+FUNCTION_BEGIN(halt)
 	b halt
 	nop
+FUNCTION_END(halt)
 
-jump_to_kernel:
+FUNCTION_BEGIN(jump_to_kernel)
 	set 0x80a00000, %l0
 	mov %i1, %o0
 	jmp %l0
 	nop
+FUNCTION_END(jump_to_kernel)
Index: kernel/arch/sparc32/src/context.S
===================================================================
--- kernel/arch/sparc32/src/context.S	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ kernel/arch/sparc32/src/context.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -28,4 +28,5 @@
 #
 
+#include <abi/asmtool.h>
 #include <arch/context_offset.h>
 #include <arch/arch.h>
@@ -33,12 +34,9 @@
 .text
 
-.global context_save_arch
-.global context_restore_arch
-
 /*
  * context_save_arch() is required not to create its own stack frame. See the
  * generic context.h for explanation.
  */
-context_save_arch:
+FUNCTION_BEGIN(context_save_arch)
 	#
 	# Force all our active register windows to memory so that we can find
@@ -62,6 +60,7 @@
 	retl
 	mov 1, %o0		! context_save_arch returns 1
+FUNCTION_END(context_save_arch)
 
-context_restore_arch:
+FUNCTION_BEGIN(context_restore_arch)
 	#
 	# Forget all previous windows, they are not going to be needed again.
@@ -97,2 +96,3 @@
 	retl
 	xor %o0, %o0, %o0	! context_restore_arch returns 0
+FUNCTION_END(context_restore_arch)
Index: kernel/arch/sparc32/src/start.S
===================================================================
--- kernel/arch/sparc32/src/start.S	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ kernel/arch/sparc32/src/start.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -27,12 +27,9 @@
 #
 
+#include <abi/asmtool.h>
+
 .text
 
-.global kernel_image_start
-.global early_putchar
-.global kernel_sp
-.global uspace_wbuf
-
-kernel_image_start:
+SYMBOL(kernel_image_start)
 	# Install trap handlers
 	set trap_table, %g1
@@ -68,5 +65,5 @@
 	nop
 
-early_putchar:
+FUNCTION_BEGIN(early_putchar)
 	set 0x80000100, %l0
 	cmp %o0, '\n'
@@ -80,9 +77,10 @@
 		retl
 		nop
+FUNCTION_END(early_putchar)
 
-kernel_sp:
+SYMBOL(kernel_sp)
 .space 4
 
-uspace_wbuf:
+SYMBOL(uspace_wbuf)
 .space 4
 
Index: kernel/arch/sparc32/src/trap_table.S
===================================================================
--- kernel/arch/sparc32/src/trap_table.S	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ kernel/arch/sparc32/src/trap_table.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -27,19 +27,9 @@
 #
 
+#include <abi/asmtool.h>
 #include <arch/trap.h>
 #include <arch/regwin.h>
 
 .text
-
-.global trap_table
-.global reset_trap
-.global preemptible_trap
-.global interrupt_trap
-.global syscall_trap
-.global window_overflow_trap
-.global window_underflow_trap
-.global write_to_invalid
-.global read_from_invalid
-.global flush_windows
 
 .macro get_wim_number reg
@@ -218,5 +208,5 @@
 .endm
 
-write_to_invalid:
+FUNCTION_BEGIN(write_to_invalid)
 	! Write value 1
 	mov %o0, %g7
@@ -236,6 +226,7 @@
 	retl
 	nop
-
-read_from_invalid:
+FUNCTION_END(write_to_invalid)
+
+FUNCTION_BEGIN(read_from_invalid)
 	! Read value 1
 	mov %o0, %g7
@@ -255,6 +246,7 @@
 	retl
 	nop
-
-reset_trap:
+FUNCTION_END(read_from_invalid)
+
+SYMBOL(reset_trap)
 	set 0x80000100, %l0
 	set 'r', %l1
@@ -262,5 +254,5 @@
 	rett
 
-window_overflow_trap:
+SYMBOL(window_overflow_trap)
 	mov %g7, %l0
 	
@@ -393,5 +385,5 @@
 		rett %l2
 
-window_underflow_trap:
+SYMBOL(window_underflow_trap)
 	mov %g7, %l0
 	
@@ -479,5 +471,5 @@
 		rett %l2
 
-flush_windows:
+FUNCTION_BEGIN(flush_windows)
 	mov 7, %g1
 	1:
@@ -494,6 +486,7 @@
 	retl
 	nop
-
-preemptible_trap:
+FUNCTION_END(flush_windows)
+
+SYMBOL(preemptible_trap)
 	/* Save %g7 */
 	mov %g7, %l0
@@ -670,5 +663,5 @@
 		rett %l2
 
-interrupt_trap:
+SYMBOL(interrupt_trap)
 	/* Save %g7 */
 	mov %g7, %l0
@@ -844,5 +837,5 @@
 		rett %l2
 
-syscall_trap:
+SYMBOL(syscall_trap)
 	/* Save %g7 */
 	mov %g7, %l0
@@ -1051,5 +1044,5 @@
 
 .align TRAP_TABLE_SIZE
-trap_table:
+SYMBOL(trap_table)
 	STRAP(0x0, reset_trap)
 	TRAP(0x1, instruction_access_exception)
Index: uspace/lib/c/arch/sparc32/Makefile.inc
===================================================================
--- uspace/lib/c/arch/sparc32/Makefile.inc	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ uspace/lib/c/arch/sparc32/Makefile.inc	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -28,7 +28,7 @@
 
 ARCH_SOURCES = \
-	arch/$(UARCH)/src/entry.s \
-	arch/$(UARCH)/src/entryjmp.s \
-	arch/$(UARCH)/src/thread_entry.s \
+	arch/$(UARCH)/src/entry.S \
+	arch/$(UARCH)/src/entryjmp.S \
+	arch/$(UARCH)/src/thread_entry.S \
 	arch/$(UARCH)/src/fibril.S \
 	arch/$(UARCH)/src/tls.c \
Index: uspace/lib/c/arch/sparc32/src/entry.S
===================================================================
--- uspace/lib/c/arch/sparc32/src/entry.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
+++ uspace/lib/c/arch/sparc32/src/entry.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2006 Martin Decky
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#include <abi/asmtool.h>
+
+.section .init, "ax"
+
+.org 0
+
+## User-space task entry point
+#
+# %o0 contains uarg
+# %o1 contains pcb_ptr
+#
+SYMBOL(__entry)
+	#
+	# Create the first stack frame.
+	#
+	
+	save %sp, -176, %sp
+	## XXX	flushw
+	mov 7, %g1
+	1:
+		subcc %g1, 1, %g1
+		bg 1b
+		save %sp, -64, %sp
+	
+	mov 7, %g1
+	1:
+		subcc %g1, 1, %g1
+		bg 1b
+		restore
+	
+	## XXX end flush
+	## add %g0, -0x7ff, %fp
+	set 0x80000000, %fp
+	
+	# Pass pcb_ptr as the first argument to __main()
+	mov %i1, %o0
+	sethi %hi(_gp), %l7
+	call __main
+	or %l7, %lo(_gp), %l7
Index: pace/lib/c/arch/sparc32/src/entry.s
===================================================================
--- uspace/lib/c/arch/sparc32/src/entry.s	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ 	(revision )
@@ -1,67 +1,0 @@
-#
-# Copyright (c) 2006 Martin Decky
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-.section .init, "ax"
-
-.org 0
-
-.globl __entry
-
-## User-space task entry point
-#
-# %o0 contains uarg
-# %o1 contains pcb_ptr
-#
-__entry:
-	#
-	# Create the first stack frame.
-	#
-	
-	save %sp, -176, %sp
-	## XXX	flushw
-	mov 7, %g1
-	1:
-		subcc %g1, 1, %g1
-		bg 1b
-		save %sp, -64, %sp
-	
-	mov 7, %g1
-	1:
-		subcc %g1, 1, %g1
-		bg 1b
-		restore
-	
-	## XXX end flush
-	## add %g0, -0x7ff, %fp
-	set 0x80000000, %fp
-	
-	# Pass pcb_ptr as the first argument to __main()
-	mov %i1, %o0
-	sethi %hi(_gp), %l7
-	call __main
-	or %l7, %lo(_gp), %l7
Index: uspace/lib/c/arch/sparc32/src/entryjmp.S
===================================================================
--- uspace/lib/c/arch/sparc32/src/entryjmp.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
+++ uspace/lib/c/arch/sparc32/src/entryjmp.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2008 Jiri Svoboda
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#include <abi/asmtool.h>
+
+## void entry_point_jmp(void *entry_point, void *pcb);
+#
+# %o0	contains entry_point
+# %o1	contains pcb
+#
+# Jump to program entry point
+FUNCTION_BEGIN(entry_point_jmp)
+	# Pass pcb pointer to entry point in %o1. As it is already
+	# there, no action is needed.
+	call %o0
+	nop
+	# FIXME: use branch instead of call
+FUNCTION_END(entry_point_jmp)
Index: pace/lib/c/arch/sparc32/src/entryjmp.s
===================================================================
--- uspace/lib/c/arch/sparc32/src/entryjmp.s	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#
-# Copyright (c) 2008 Jiri Svoboda
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-.globl entry_point_jmp
-
-## void entry_point_jmp(void *entry_point, void *pcb);
-#
-# %o0	contains entry_point
-# %o1	contains pcb
-#
-# Jump to program entry point
-entry_point_jmp:
-	# Pass pcb pointer to entry point in %o1. As it is already
-	# there, no action is needed.
-	call %o0
-	nop
-	# FIXME: use branch instead of call
Index: uspace/lib/c/arch/sparc32/src/fibril.S
===================================================================
--- uspace/lib/c/arch/sparc32/src/fibril.S	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ uspace/lib/c/arch/sparc32/src/fibril.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -27,13 +27,10 @@
 #
 
+#include <abi/asmtool.h>
 #include <libarch/context_offset.h>
 
 .text
 
-.global flush_windows
-.global context_save
-.global context_restore
-
-context_save:
+FUNCTION_BEGIN(context_save)
 	#
 	# We rely on the kernel to flush our active register windows to memory
@@ -56,6 +53,7 @@
 	retl
 	mov 1, %o0              ! context_save_arch returns 1
+FUNCTION_END(context_save)
 
-context_restore:
+FUNCTION_BEGIN(context_restore)
 	#
 	# Flush all active windows.
@@ -84,2 +82,3 @@
 	retl
 	xor %o0, %o0, %o0       ! context_restore_arch returns 0
+FUNCTION_END(context_restore)
Index: uspace/lib/c/arch/sparc32/src/stacktrace_asm.S
===================================================================
--- uspace/lib/c/arch/sparc32/src/stacktrace_asm.S	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ uspace/lib/c/arch/sparc32/src/stacktrace_asm.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -27,13 +27,10 @@
 #
 
+#include <abi/asmtool.h>
 #include <libarch/stack.h>
 
 .text
 
-.global stacktrace_prepare
-.global stacktrace_fp_get
-.global stacktrace_pc_get
-
-stacktrace_prepare:
+FUNCTION_BEGIN(stacktrace_prepare)
 	save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE+STACK_ARG_SAVE_AREA_SIZE), %sp
 	
@@ -53,11 +50,14 @@
 	ret
 	restore
+FUNCTION_END(stacktrace_prepare)
 
-stacktrace_fp_get:
+FUNCTION_BEGIN(stacktrace_fp_get)
 	# Add the stack bias to %sp to get the actual address.
 	retl
 	mov %sp,  %o0
+FUNCTION_END(stacktrace_fp_get)
 
-stacktrace_pc_get:
+FUNCTION_BEGIN(stacktrace_pc_get)
 	retl
 	mov %o7, %o0
+FUNCTION_END(stacktrace_pc_get)
Index: uspace/lib/c/arch/sparc32/src/thread_entry.S
===================================================================
--- uspace/lib/c/arch/sparc32/src/thread_entry.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
+++ uspace/lib/c/arch/sparc32/src/thread_entry.S	(revision 38ad239c4c325a86b9e2b838f284f775430e3d22)
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2006 Jakub Jermar
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#include <abi/asmtool.h>
+
+.text
+
+## User-space thread entry point for all but the first threads.
+#
+#
+SYMBOL(__thread_entry)
+	#
+	# Create the first stack frame.
+	#
+	
+	save %sp, -176, %sp
+	## XXX flushw
+	mov 7, %g1
+	1:
+		subcc %g1, 1, %g1
+		bg 1b
+		save %sp, -64, %sp
+	
+	mov 7, %g1
+	1:
+		subcc %g1, 1, %g1
+		bg 1b
+	
+	## XXX end flushw
+	set 0x80000000, %fp
+	
+	#
+	# Propagate the input arguments to the new window.
+	#
+	
+	mov %i0, %o0
+	
+	sethi %hi(_gp), %l7
+	call __thread_main      ! %o0 contains address of uarg
+	or %l7, %lo(_gp), %l7
+	
+	! not reached
Index: pace/lib/c/arch/sparc32/src/thread_entry.s
===================================================================
--- uspace/lib/c/arch/sparc32/src/thread_entry.s	(revision b66cc977e145eaa74a7e9fe52a4a2e995c81ad02)
+++ 	(revision )
@@ -1,69 +1,0 @@
-#
-# Copyright (c) 2006 Jakub Jermar
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-.text
-
-.globl __thread_entry
-
-## User-space thread entry point for all but the first threads.
-#
-#
-__thread_entry:
-	#
-	# Create the first stack frame.
-	#
-	
-	save %sp, -176, %sp
-	## XXX flushw
-	mov 7, %g1
-	1:
-		subcc %g1, 1, %g1
-		bg 1b
-		save %sp, -64, %sp
-	
-	mov 7, %g1
-	1:
-		subcc %g1, 1, %g1
-		bg 1b
-	
-	## XXX end flushw
-	set 0x80000000, %fp
-	
-	#
-	# Propagate the input arguments to the new window.
-	#
-	
-	mov %i0, %o0
-	
-	sethi %hi(_gp), %l7
-	call __thread_main      ! %o0 contains address of uarg
-	or %l7, %lo(_gp), %l7
-	
-	! not reached
-	
-.end __thread_entry
