diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-12-11 05:10:18 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-12-11 05:10:18 +0000 |
commit | aeca18e7af8fa0df6d9852de2c364a89ed4008d3 (patch) | |
tree | 853013cb2c7144ff3d4abb469f0531bf1ddd4930 /usr.sbin | |
parent | 48d6b0594cc146182f3898897fa986ef3a45be90 (diff) |
More changes to avoid truncating 64 bit pointers to 32 bits and sign-extending
them; allows userland with stack beyond 2GB to run.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/afs/src/lwp/process.mips.S | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/afs/src/lwp/process.mips.S b/usr.sbin/afs/src/lwp/process.mips.S index 74a300be316..3f8e1a0d37b 100644 --- a/usr.sbin/afs/src/lwp/process.mips.S +++ b/usr.sbin/afs/src/lwp/process.mips.S @@ -29,10 +29,14 @@ #define REGSIZE 8 #define REG_S sd #define REG_L ld +#define ADDU daddu +#define SUBU dsubu #else #define REGSIZE 4 #define REG_S sw #define REG_L lw +#define ADDU addu +#define SUBU subu #endif #ifdef HAVE_PIC @@ -61,7 +65,7 @@ savecontext: .set noreorder .cpload t9 # set up gp for KPIC .set reorder - subu sp, regspace + SUBU sp, regspace .cprestore GPOFF # trigger t9/jalr .set noreorder li t0, 1 @@ -126,7 +130,7 @@ returnto: l.d $f28, floats + 32(sp) l.d $f30, floats + 40(sp) .set noreorder - addu sp, regspace + ADDU sp, regspace sw zero, PRE_Block j ra nop @@ -171,7 +175,7 @@ savecontext: li t0, 1 .extern PRE_Block sw t0, PRE_Block - subu sp, regspace + SUBU sp, regspace .frame sp, regspace, ra /* Save registers. */ REG_S s0, registers + (0 * REGSIZE)(sp) |