[project @ 2005-01-17 16:46:58 by simonmar]
[ghc-hetmet.git] / ghc / driver / mangler / ghc-asm.lprl
index 00af653..886ada8 100644 (file)
@@ -405,7 +405,7 @@ sub init_TARGET_STUFF {
     $T_CONST_LBL    = '^\.LLC(\d+):$'; # regexp for what such a lbl looks like
     $T_POST_LBL     = ':';
 
-    $T_MOVE_DIRVS   = '^((\s+\.align\s+\d+|\s+\.proc\s+\d+|\s+\.global\s+\S+|\.text|\.data|\.seg|\.stab.*|\t?\.section.*|\s+\.type.*|\s+\.size.*)\n)';
+    $T_MOVE_DIRVS   = '^((\s+\.align\s+\d+|\s+\.proc\s+\d+|\s+\.global\s+\S+|\.text|\.data|\.seg|\.stab.*|\s+?\.section.*|\s+\.type.*|\s+\.size.*)\n)';
     $T_COPY_DIRVS   = '\.(global|globl|proc|stab)';
 
     $T_DOT_WORD     = '\.(long|word|nword|xword|byte|half|short|skip|uahalf|uaword)';
@@ -655,16 +655,22 @@ sub mangle_asm {
                    || /^${T_US}.*_slow${T_POST_LBL}$/o         # slow entry
                    || /^${T_US}__stginit.*${T_POST_LBL}$/o     # __stginit<module>
                    || /^${T_US}.*_btm${T_POST_LBL}$/o          # large bitmaps
-                   || /^${T_US}.*_srtd${T_POST_LBL}$/o          # large bitmaps
                    || /^${T_US}.*_fast${T_POST_LBL}$/o         # primops
-                   || /^${T_US}.*_closure_tbl${T_POST_LBL}$/o  # closure tables
                     || /^_uname:/o                             # x86/Solaris2
-               ) {
-                       $chkcat[$i]  = 'misc';
-                 } else {
-                       print STDERR "Warning: retaining unknown function \`$thing' in output from C compiler\n";
-                       $chkcat[$i]  = 'unknown';
-               }
+               )
+            {
+               $chkcat[$i]  = 'misc';
+            } elsif (
+                      /^${T_US}.*_srtd${T_POST_LBL}$/o          # large bitmaps
+                   || /^${T_US}.*_closure_tbl${T_POST_LBL}$/o  # closure tables
+                )
+            {
+                $chkcat[$i] = 'rodata';
+            } else
+            {
+               print STDERR "Warning: retaining unknown function \`$thing' in output from C compiler\n";
+               $chkcat[$i]  = 'unknown';
+           }
 
        } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && ( 
                   /^\.picsymbol_stub/