[Haskell-cafe] IA64 porting: spill code in the mangler

C Rodrigues red5_2 at hotmail.com
Wed Aug 9 20:30:38 EDT 2006


Hi folks,

I've been trying to compile a new ia64 port.  I've cross-compiled an 
unregisterised compiler that generated working binaries the first time it 
was built, which was a pleasant experience.  But I ran into issues with the 
registerised build.  The mangler is choking on floating-point spill code:

Prologue junk?:         .global __divdf3#
        .global GHCziFloat_zdwlogBase_entry#
        .proc GHCziFloat_zdwlogBase_entry#
GHCziFloat_zdwlogBase_entry:
        mov r16 = r12
        .save.f 0x1
        stf.spill [r16] = f2
        .body

This saves floating-point register 2 on the stack; it's loaded again later.  
I could change the mangler to remove this code, if that's the right 
approach.  What should the mangler do about it?




More information about the Haskell-Cafe mailing list