[project @ 1999-02-18 13:00:27 by sewardj]
authorsewardj <unknown>
Thu, 18 Feb 1999 13:00:28 +0000 (13:00 +0000)
committersewardj <unknown>
Thu, 18 Feb 1999 13:00:28 +0000 (13:00 +0000)
Make decoding of RtsFlags.DebugFlags work on big-endian architectures.

ghc/rts/RtsFlags.c
ghc/rts/RtsFlags.h

index a59f733..d30fa2e 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsFlags.c,v 1.10 1999/02/18 12:21:07 simonm Exp $
+ * $Id: RtsFlags.c,v 1.11 1999/02/18 13:00:27 sewardj Exp $
  *
  * (c) The AQUA Project, Glasgow University, 1994-1997
  * (c) The GHC Team, 1998-1999
@@ -444,7 +444,18 @@ error = rtsTrue;
 #ifdef DEBUG
              case 'D':
                /* hack warning: interpret the flags as a binary number */
-               *(int*)(&RtsFlags.DebugFlags) = decode(rts_argv[arg]+2);
+               { 
+                   I_ n = decode(rts_argv[arg]+2);
+                   if (n     &1) RtsFlags.DebugFlags.scheduler   = rtsTrue;
+                   if ((n>>1)&1) RtsFlags.DebugFlags.evaluator   = rtsTrue;
+                   if ((n>>2)&1) RtsFlags.DebugFlags.codegen     = rtsTrue;
+                   if ((n>>3)&1) RtsFlags.DebugFlags.weak        = rtsTrue;
+                   if ((n>>4)&1) RtsFlags.DebugFlags.gccafs      = rtsTrue;
+                   if ((n>>5)&1) RtsFlags.DebugFlags.gc          = rtsTrue;
+                   if ((n>>6)&1) RtsFlags.DebugFlags.block_alloc = rtsTrue;
+                   if ((n>>7)&1) RtsFlags.DebugFlags.sanity      = rtsTrue;
+                   if ((n>>8)&1) RtsFlags.DebugFlags.stable      = rtsTrue;
+                }
                break;
 #endif
 
index 12588dc..562202b 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsFlags.h,v 1.9 1999/02/05 16:02:50 simonm Exp $
+ * $Id: RtsFlags.h,v 1.10 1999/02/18 13:00:28 sewardj Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -39,7 +39,9 @@ struct GC_FLAGS {
 };
 
 /* Hack: this struct uses bitfields so that we can use a binary arg
- * with the -D flag
+ * with the -D flag.
+ * Remember to update the corresponding bit of RtsFlags.c if you
+ * change/extend this struct.
  */
 struct DEBUG_FLAGS {  
   /* flags to control debugging output in various subsystems */