X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdriver%2Fmangler%2Fghc-asm.lprl;h=19c3012c0870a8334f45123125e30cd6d23103f2;hb=45252b35151fc55aa19fb6770df5ed8267639083;hp=1c75f00d2b331d04381056c86692575a3e066de2;hpb=9342a543736bc7a015ec5857d20e98001c9e990f;p=ghc-hetmet.git diff --git a/ghc/driver/mangler/ghc-asm.lprl b/ghc/driver/mangler/ghc-asm.lprl index 1c75f00..19c3012 100644 --- a/ghc/driver/mangler/ghc-asm.lprl +++ b/ghc/driver/mangler/ghc-asm.lprl @@ -160,7 +160,7 @@ sub init_TARGET_STUFF { $T_HDR_vector = "\.text\n\t\.align 2\n"; # NB: requires padding #--------------------------------------------------------# - } elsif ( $TargetPlatform =~ /^i386-.*-(solaris2|linux|gnu|freebsd|netbsd|openbsd)$/ ) { + } elsif ( $TargetPlatform =~ /^i386-.*-(solaris2|linux|gnu|freebsd|netbsd|openbsd|kfreebsdgnu)$/ ) { $T_STABBY = 0; # 1 iff .stab things (usually if a.out format) $T_US = ''; # _ if symbols have an underscore on the front @@ -953,16 +953,6 @@ sub mangle_asm { $p =~ s/^\tstdu 1,-\d+\(1\)\n//; $p =~ s/^\tstd \d+,-?\d+\(1\)\n//g; - # GCC's "large-model" PIC (-fPIC) - $pcrel_label = $p; - $pcrel_label =~ s/(.|\n)*^.LCF(\d+):\n(.|\n)*/$2/ or $pcrel_label = ""; - - $p =~ s/^\tbcl 20,31,.LCF\d+\n//; - $p =~ s/^.LCF\d+:\n//; - $p =~ s/^\tmflr 30\n//; - $p =~ s/^\tlwz 0,\.LCL\d+-\.LCF\d+\(30\)\n//; - $p =~ s/^\tadd 30,0,30\n//; - # This is bad: GCC 3 seems to zero-fill some local variables in the prologue # under some circumstances, only when generating position dependent code. # I have no idea why, and I don't think it is necessary, so let's toss it.