summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2003-07-12 05:01:43 +0000
committerJason Wright <jason@cvs.openbsd.org>2003-07-12 05:01:43 +0000
commitd4caefc6d4fb98ba3c9484c2deab88179f26da0d (patch)
treec046ff0352c6f8d5bc086926b8234a78cf7cc847 /sys
parentb1bc7afd8d60b42e65e09dccf64756e2dcb04e39 (diff)
%asi is in tf_tstate... nail the last variant of ldqfa/stqfa
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/sparc64/sparc64/emul.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/sys/arch/sparc64/sparc64/emul.c b/sys/arch/sparc64/sparc64/emul.c
index 91a9edaea5f..bd6a58ceef0 100644
--- a/sys/arch/sparc64/sparc64/emul.c
+++ b/sys/arch/sparc64/sparc64/emul.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: emul.c,v 1.6 2003/07/12 03:58:42 jason Exp $ */
+/* $OpenBSD: emul.c,v 1.7 2003/07/12 05:01:42 jason Exp $ */
/* $NetBSD: emul.c,v 1.8 2001/06/29 23:58:40 eeh Exp $ */
/*-
@@ -496,14 +496,9 @@ emul_qf(int32_t insv, struct proc *p, union sigval sv, struct trapframe *tf)
if (ins.i_op3.i_op3 == IOP3_STQF || ins.i_op3.i_op3 == IOP3_LDQF)
asi = ASI_PRIMARY;
- else if (ins.i_loadstore.i_i) {
- /*
- * XXX asi = %asi, how do I get %asi the proc's %asi here?
- * XXX kill it for now
- */
- trapsignal(p, SIGILL, 0, ILL_PRVOPC, sv);
- return (0);
- } else
+ else if (ins.i_loadstore.i_i)
+ asi = (tf->tf_tstate & TSTATE_ASI) >> TSTATE_ASI_SHIFT;
+ else
asi = ins.i_asi.i_asi;
addr = tf->tf_global[ins.i_asi.i_rs1];