Sync with sun3/locore.s rev 1.88:

> Pass a frame pointer to trap() rather than the 'entire frame' trick.  Gcc4
> was optimizing away modifications to the frame contents (it's not nice to
> trick gcc).  Pass the pointer as the first argument to reduce the number
> of places that would be changed otherwise.  Fixes the getcwd regression
> test on most m68k ports.
Fixes MMU fault panic in trap() on sun3x.

This should be pulled up to netbsd-4 too.
This commit is contained in:
tsutsui 2007-07-20 22:26:29 +00:00
parent da6e256110
commit 0681619847
1 changed files with 3 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.s,v 1.55 2007/05/18 10:18:26 tsutsui Exp $ */
/* $NetBSD: locore.s,v 1.56 2007/07/20 22:26:29 tsutsui Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@ -572,8 +572,9 @@ Lrei1:
clrl %sp@- | VA == none
clrl %sp@- | code == none
movl #T_ASTFLT,%sp@- | type == async system trap
pea %sp@(12) | fp == address of trap frame
jbsr _C_LABEL(trap) | go handle it
lea %sp@(12),%sp | pop value args
lea %sp@(16),%sp | pop value args
movl %sp@(FR_SP),%a0 | restore user SP
movl %a0,%usp | from save area
movw %sp@(FR_ADJ),%d0 | need to adjust stack?