diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2003-07-09 15:52:54 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2003-07-09 15:52:54 +0000 |
commit | 582472514b1acd6983fa35b7f13cf26ad81d67ec (patch) | |
tree | f0861cdbb69727a15d6c26f91a7da0a2d5c7e0ca /sys | |
parent | a0ed26fc7099975da5fc02f4e88618c2ba901784 (diff) |
add trap entries for LDQF/STQF alignment faults, but handle them as
SIGILL for now. Also split out T_INST_EXCEPT and T_TEXTFAULT from
T_ILLINST pending handling of LDQF/STQF illegal instruction faults.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/sparc64/sparc64/locore.s | 6 | ||||
-rw-r--r-- | sys/arch/sparc64/sparc64/trap.c | 14 |
2 files changed, 16 insertions, 4 deletions
diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s index 5bad13ac7dc..cfcf6c483c9 100644 --- a/sys/arch/sparc64/sparc64/locore.s +++ b/sys/arch/sparc64/sparc64/locore.s @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.s,v 1.40 2003/07/09 02:18:09 jason Exp $ */ +/* $OpenBSD: locore.s,v 1.41 2003/07/09 15:52:53 jason Exp $ */ /* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */ /* @@ -712,7 +712,9 @@ _C_LABEL(trapbase): TRAP T_LDDF_ALIGN ! 035 = LDDF address alignment error -- we could fix it inline... TRAP T_STDF_ALIGN ! 036 = STDF address alignment error -- we could fix it inline... TRAP T_PRIVACT ! 037 = privileged action - UTRAP 0x038; UTRAP 0x039; UTRAP 0x03a; UTRAP 0x03b; UTRAP 0x03c; + TRAP T_LDQF_ALIGN ! 038 = LDDF address alignment error + TRAP T_STQF_ALIGN ! 039 = STQF address alignment error + UTRAP 0x03a; UTRAP 0x03b; UTRAP 0x03c; UTRAP 0x03d; UTRAP 0x03e; UTRAP 0x03f; VTRAP T_ASYNC_ERROR, winfault ! 040 = data fetch fault SOFTINT4U 1, IE_L1 ! 041 = level 1 interrupt diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c index 654c40133ff..519957c5d21 100644 --- a/sys/arch/sparc64/sparc64/trap.c +++ b/sys/arch/sparc64/sparc64/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.24 2003/02/17 01:29:20 henric Exp $ */ +/* $OpenBSD: trap.c,v 1.25 2003/07/09 15:52:53 jason Exp $ */ /* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */ /* @@ -543,11 +543,14 @@ badtrap: break; /* the work is all in userret() */ case T_ILLINST: + trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */ + break; case T_INST_EXCEPT: + trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */ + break; case T_TEXTFAULT: trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */ break; - case T_PRIVINST: trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */ break; @@ -598,6 +601,13 @@ badtrap: break; } + case T_LDQF_ALIGN: + trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */ + break; + case T_STQF_ALIGN: + trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */ + break; + case T_ALIGN: case T_LDDF_ALIGN: case T_STDF_ALIGN: |