Index: frysk-core/frysk/pkglibexecdir/funit-ia32-regs.S =================================================================== RCS file: /cvs/frysk/frysk-core/frysk/pkglibexecdir/funit-ia32-regs.S,v retrieving revision 1.2 diff -u -r1.2 funit-ia32-regs.S --- frysk-core/frysk/pkglibexecdir/funit-ia32-regs.S 27 Jun 2006 15:28:53 -0000 1.2 +++ frysk-core/frysk/pkglibexecdir/funit-ia32-regs.S 5 Sep 2006 09:42:42 -0000 @@ -44,7 +44,7 @@ mov $1, %eax // exit syscall number mov $2, %ebx // first syscall arg mov $3, %ecx - mov $4, %edx + mov $-4, %edx mov $5, %ebp mov $6, %esi mov $7, %edi Index: frysk-core/frysk/proc/IsaIA32.java =================================================================== RCS file: /cvs/frysk/frysk-core/frysk/proc/IsaIA32.java,v retrieving revision 1.4 diff -u -r1.4 IsaIA32.java --- frysk-core/frysk/proc/IsaIA32.java 29 Aug 2006 05:35:43 -0000 1.4 +++ frysk-core/frysk/proc/IsaIA32.java 5 Sep 2006 09:42:43 -0000 @@ -57,6 +57,13 @@ { super(0, wordOffset * 4, 4, name); } + // sign extend all 32-bit register values to 64-bit long. + public long get(frysk.proc.Task task) + { + int val; + val = (int) super.get(task); + return val; + } } static class IA32SegmentRegister Index: frysk-core/frysk/proc/IsaPPC.java =================================================================== RCS file: /cvs/frysk/frysk-core/frysk/proc/IsaPPC.java,v retrieving revision 1.2 diff -u -r1.2 IsaPPC.java --- frysk-core/frysk/proc/IsaPPC.java 23 Aug 2006 04:04:19 -0000 1.2 +++ frysk-core/frysk/proc/IsaPPC.java 5 Sep 2006 09:42:43 -0000 @@ -17,6 +17,13 @@ { super (0, wordOffset * 4, 4, name); } + // sign extend all 32-bit register values to 64-bit long. + public long get(frysk.proc.Task task) + { + int val; + val = (int) super.get(task); + return val; + } } private static PPCRegister[] gprs () Index: frysk-core/frysk/proc/Syscall.java =================================================================== RCS file: /cvs/frysk/frysk-core/frysk/proc/Syscall.java,v retrieving revision 1.11 diff -u -r1.11 Syscall.java --- frysk-core/frysk/proc/Syscall.java 24 Aug 2006 03:13:05 -0000 1.11 +++ frysk-core/frysk/proc/Syscall.java 5 Sep 2006 09:42:44 -0000 @@ -197,7 +197,7 @@ writer.println (""); break; case 'i': - arg = (int)syscallEventInfo.returnCode (task); + arg = syscallEventInfo.returnCode (task); if (arg < 0) { writer.print ("-1"); writer.println (" ERRNO=" + (-arg)); Index: frysk-core/frysk/proc/TestRegs.java =================================================================== RCS file: /cvs/frysk/frysk-core/frysk/proc/TestRegs.java,v retrieving revision 1.2 diff -u -r1.2 TestRegs.java --- frysk-core/frysk/proc/TestRegs.java 31 Aug 2006 05:57:47 -0000 1.2 +++ frysk-core/frysk/proc/TestRegs.java 5 Sep 2006 09:42:44 -0000 @@ -415,7 +415,7 @@ assertEquals ("orig_eax register", 1, t.orig_eax); assertEquals ("ebx register", 2, t.ebx); assertEquals ("ecx register", 3, t.ecx); - assertEquals ("edx register", 4, t.edx); + assertEquals ("edx register", -4, t.edx); assertEquals ("ebp register", 5, t.ebp); assertEquals ("esi register", 6, t.esi); assertEquals ("edi register", 7, t.edi);