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