pushl %ebp prologue junk from PrimOps.cmm
Donald Bruce Stewart
dons at cse.unsw.edu.au
Wed Sep 1 23:48:07 EDT 2004
Hey,
More on getting the head to build. PrimOps.cmm dies with:
../../ghc/compiler/ghc-inplace -H16m -O -O2 -static -#include Prelude.h -#include Rts.h -#include RtsFlags.h -#include RtsUtils.h -#include StgRun.h -#include Schedule.h -#include Printer.h -#include Sanity.h -#include Storage.h -#include SchedAPI.h -#include Timer.h -#include Itimer.h -#include ProfHeap.h -#include LdvProfile.h -#include Profiling.h -#include Apply.h -fvia-C -dcmm-lint -c PrimOps.cmm -o PrimOps.o
Prologue junk?: .globl int64ToIntegerzh_fast
.type int64ToIntegerzh_fast , @function
int64ToIntegerzh_fast:
pushl %ebp
The prologue looks like:
.globl int64ToIntegerzh_fast
.type int64ToIntegerzh_fast , @function
int64ToIntegerzh_fast:
subl $28,%esp
pushl %ebp
pushl %edi
pushl %esi
pushl %ebx
#APP
--- BEGIN ---
#NO_APP
Normally, it seems, %ebp doesn't appear in the prologue on i386, with gcc
2.95.3. The following fix wipes the instruction, and I'd like to check that it
is ok.
------------------------------------------------------------------------
--- ghc-asm.lprl.orig Thu Sep 2 13:42:07 2004
+++ ghc-asm.lprl Thu Sep 2 13:42:13 2004
@@ -699,6 +699,7 @@
if ($TargetPlatform =~ /^i386-/) {
$p =~ s/^\tpushl\s+\%edi\n//;
$p =~ s/^\tpushl\s+\%esi\n//;
+ $p =~ s/^\tpushl\s+\%ebp\n//;
$p =~ s/^\tpushl\s+\%ebx\n//;
$p =~ s/^\tmovl\s+\%esi,\s*\d*\(\%esp\)\n//;
$p =~ s/^\tmovl\s+\%edi,\s*\d*\(\%esp\)\n//;
More information about the Cvs-ghc
mailing list