X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=driver%2Fmangler%2Fghc-asm.lprl;h=4bac756fda6dcc8591732e7b9252424156351e83;hb=daead6bf93cc751417461507048db9b1aa8b669a;hp=7fd1855df3b190c509e7918610487390c3b0e4cc;hpb=2a20c64269f29c319e16ddd0f6745000b9a98cb2;p=ghc-hetmet.git diff --git a/driver/mangler/ghc-asm.lprl b/driver/mangler/ghc-asm.lprl index 7fd1855..4bac756 100644 --- a/driver/mangler/ghc-asm.lprl +++ b/driver/mangler/ghc-asm.lprl @@ -160,12 +160,12 @@ sub init_TARGET_STUFF { $T_HDR_vector = "\.text\n\t\.align 4\n"; # NB: requires padding #--------------------------------------------------------# - } elsif ( $TargetPlatform =~ /^i386-.*-(solaris2|linux|gnu|freebsd|netbsd|openbsd|kfreebsdgnu)$/m ) { + } elsif ( $TargetPlatform =~ /^i386-.*-(solaris2|linux|gnu|freebsd|dragonfly|netbsd|openbsd|kfreebsdgnu)$/m ) { $T_STABBY = 0; # 1 iff .stab things (usually if a.out format) $T_US = ''; # _ if symbols have an underscore on the front $T_PRE_APP = # regexp that says what comes before APP/NO_APP - ($TargetPlatform =~ /-(linux|gnu|freebsd|netbsd|openbsd)$/m) ? '#' : '/' ; + ($TargetPlatform =~ /-(linux|gnu|freebsd|dragonfly|netbsd|openbsd)$/m) ? '#' : '/' ; $T_CONST_LBL = '^\.LC(\d+):$'; # regexp for what such a lbl looks like $T_POST_LBL = ':'; $T_X86_PRE_LLBL_PAT = '\.L'; @@ -216,7 +216,7 @@ sub init_TARGET_STUFF { $T_HDR_vector = "\.text\n\t\.align 8\n"; #--------------------------------------------------------# - } elsif ( $TargetPlatform =~ /^x86_64-.*-(linux|openbsd|freebsd|netbsd)$/m ) { + } elsif ( $TargetPlatform =~ /^x86_64-.*-(linux|openbsd|freebsd|dragonfly|netbsd|kfreebsdgnu)$/m ) { $T_STABBY = 0; # 1 iff .stab things (usually if a.out format) $T_US = ''; # _ if symbols have an underscore on the front @@ -580,7 +580,7 @@ sub mangle_asm { next if /${T_PRE_APP}(NO_)?APP/om; next if /^;/m && $TargetPlatform =~ /^hppa/m; - next if /(^$|^\t\.file\t|^ # )/m && $TargetPlatform =~ /^(mips|ia64)-/m; + next if /(^$|^\t\.file\t|^ # )/m && $TargetPlatform =~ /(^mips-|^ia64-|-mingw32$)/m; if ( $TargetPlatform =~ /^mips-/m && /^\t\.(globl\S+\.text|comm\t)/m ) { @@ -1445,7 +1445,8 @@ sub mangle_asm { # If this is an entry point with an info table, # eliminate the entry symbol and all directives involving it. - if (defined($infochk{$symb}) && $TargetPlatform !~ /^ia64-/m) { + if (defined($infochk{$symb}) && $TargetPlatform !~ /^ia64-/m + && $TABLES_NEXT_TO_CODE eq "YES") { @o = (); foreach $l (split(/\n/m,$c)) { next if $l =~ /^.*$symb_(entry|ret)${T_POST_LBL}/m; @@ -1880,7 +1881,8 @@ sub rev_tbl { # use vars '$discard1'; # Unused? local($symb, $tbl, $discard1) = @_; - return ($tbl) if ($TargetPlatform =~ /^ia64-/m); + return ($tbl) if ($TargetPlatform =~ /^ia64-/m + || $TABLES_NEXT_TO_CODE eq "NO"); local($before) = ''; local($label) = '';