Files
pkgsrc-ng/lang/icon/patches/patch-ac
2013-09-26 17:14:40 +02:00

80 lines
1.6 KiB
Plaintext

$NetBSD: patch-ac,v 1.10 2009/02/08 12:51:04 asau Exp $
--- config/bsd/powerpc.s.orig 2005-06-16 19:55:17.000000000 +0400
+++ config/bsd/powerpc.s 2009-02-08 02:27:54.000000000 +0300
@@ -1,9 +1,11 @@
#
-# coswitch for the PowerPC architecture
+# coswitch for the PowerPC architecture
#
.file "rswitch.s"
+ .set RSIZE, 80 # room for regs 14-31, rounded up mod16
+
.data
errmsg: .string "new_context() returned in coswitch\n"
@@ -13,30 +15,13 @@
.type coswitch,@function
coswitch:
- stwu 1, -80(1) # allocate stack frame
+ stwu 1, -RSIZE(1) # allocate stack frame
# Save Old Context:
stw 1, 0(3) # SP
mflr 0
stw 0, 4(3) # LR (return address)
- stw 14, 0(1) # GPRs 14-31 (save on stack)
- stw 15, 4(1)
- stw 16, 8(1)
- stw 17, 12(1)
- stw 18, 16(1)
- stw 19, 20(1)
- stw 20, 24(1)
- stw 21, 28(1)
- stw 22, 32(1)
- stw 23, 36(1)
- stw 24, 40(1)
- stw 25, 44(1)
- stw 26, 48(1)
- stw 27, 52(1)
- stw 28, 56(1)
- stw 29, 60(1)
- stw 30, 64(1)
- stw 31, 68(1)
+ stmw 14, -RSIZE(1) # GPRs 14-31 (save on stack)
cmpi 0, 5, 0
beq first # if first time
@@ -45,26 +30,9 @@
lwz 1, 0(4) # SP
lwz 0, 4(4) # LR
mtlr 0
- lwz 14, 0(1) # GPRs 14-31 (from stack)
- lwz 15, 4(1)
- lwz 16, 8(1)
- lwz 17, 12(1)
- lwz 18, 16(1)
- lwz 19, 20(1)
- lwz 20, 24(1)
- lwz 21, 28(1)
- lwz 22, 32(1)
- lwz 23, 36(1)
- lwz 24, 40(1)
- lwz 25, 44(1)
- lwz 26, 48(1)
- lwz 27, 52(1)
- lwz 28, 56(1)
- lwz 29, 60(1)
- lwz 30, 64(1)
- lwz 31, 68(1)
+ lmw 14, -RSIZE(1) # GPRs 14-31 (from stack)
- addic 1, 1, 80 # deallocate stack frame
+ addic 1, 1, RSIZE # deallocate stack frame
blr # return into new context
first: # First-time call: