Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/i386/i386 Store edx to rval[1], so that it won't ge...



details:   https://anonhg.NetBSD.org/src/rev/662668ffb35f
branches:  trunk
changeset: 500763:662668ffb35f
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Mon Dec 18 11:37:08 2000 +0000

description:
Store edx to rval[1], so that it won't get zeroed spuriously - this made
shared FreeBSD binaries coredump.
This solves port-i386/11708 by Atsushi Onoe.

XXX it may be worth it to split FreeBSD syscall code off syscall.c similar way
XXX as other emulations

diffstat:

 sys/arch/i386/i386/syscall.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (27 lines):

diff -r 8be2095e184d -r 662668ffb35f sys/arch/i386/i386/syscall.c
--- a/sys/arch/i386/i386/syscall.c      Mon Dec 18 09:39:50 2000 +0000
+++ b/sys/arch/i386/i386/syscall.c      Mon Dec 18 11:37:08 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: syscall.c,v 1.8 2000/12/13 01:24:46 mycroft Exp $      */
+/*     $NetBSD: syscall.c,v 1.9 2000/12/18 11:37:08 jdolecek Exp $     */
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -133,7 +133,7 @@
 #endif /* SYSCALL_DEBUG */
 
        rval[0] = 0;
-       rval[1] = 0;
+       rval[1] = frame.tf_edx; /* need to keep edx for shared FreeBSD bins */
        error = (*callp->sy_call)(p, args, rval);
        switch (error) {
        case 0:
@@ -221,7 +221,7 @@
 #endif /* KTRACE */
 
        rval[0] = 0;
-       rval[1] = 0;
+       rval[1] = frame.tf_edx; /* need to keep edx for shared FreeBSD bins */
        error = (*callp->sy_call)(p, args, rval);
        switch (error) {
        case 0:



Home | Main Index | Thread Index | Old Index