PATCH: Linux/PPC
Marcus Meissner
meissner at suse.de
Mon Jul 21 10:15:19 CDT 2003
Hi,
Changelog:
Added missing register defines for Linux/PPC.
Index: dlls/ntdll/signal_powerpc.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/signal_powerpc.c,v
retrieving revision 1.16
diff -u -r1.16 signal_powerpc.c
--- dlls/ntdll/signal_powerpc.c 16 Jul 2003 23:29:40 -0000 1.16
+++ dlls/ntdll/signal_powerpc.c 21 Jul 2003 15:14:29 -0000
@@ -67,7 +67,6 @@
* signal context platform-specific definitions
*/
#ifdef linux
-# warning Please define registers for your platform linux ppc some are missing
typedef struct ucontext SIGCONTEXT;
@@ -79,25 +78,25 @@
/* Gpr Registers access */
-# define GPR_sig(reg_num, context) REG_sig(r##reg_num, context)
+# define GPR_sig(reg_num, context) REG_sig(gpr[reg_num], context)
# define IAR_sig(context) REG_sig(nip, context) /* Program counter */
# define MSR_sig(context) REG_sig(msr, context) /* Machine State Register (Supervisor) */
# define CTR_sig(context) REG_sig(ctr, context) /* Count register */
-# define XER_sig(context) XER_sig not defined on your platform /* Link register */
-# define LR_sig(context) LR_sig not defined on your platform /* User's integer exception register */
-# define CR_sig(context) CR_sig not defined on your platform /* Condition register */
+# define XER_sig(context) REG_sig(xer, context) /* User's integer exception register */
+# define LR_sig(context) REG_sig(link, context) /* Link register */
+# define CR_sig(context) REG_sig(ccr, context) /* Condition register */
/* Float Registers access */
-# define FLOAT_sig(reg_num, context) FLOAT_sig not defined on your platform /* Float registers */
+# define FLOAT_sig(reg_num, context) (((double*)((char*)((context)->uc_mcontext.regs+48*4)))[reg_num])
-# define FPSCR_sig(reg_num, context) FPSCR_sig not defined on your platform /* Float registers */
+# define FPSCR_sig(context) (*(int*)((char*)((context)->uc_mcontext.regs+(48+32*2)*4)))
/* Exception Registers access */
-# define DAR_sig(context) DAR_sig not defined on your platform
-# define DSISR_sig(context) DSISR_sig not defined on your platform
-# define TRAP_sig(context) TRAP_sig not defined on your platform
+# define DAR_sig(context) REG_sig(dar, context)
+# define DSISR_sig(context) REG_sig(dsisr, context)
+# define TRAP_sig(context) REG_sig(trap, context)
#endif /* linux */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 481 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20030721/2ee39196/attachment.pgp
More information about the wine-patches
mailing list