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:
parent
da6e256110
commit
0681619847
|
@ -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?
|
||||
|
|
Loading…
Reference in New Issue