
9 Aug
2006
9 Aug
'06
8:30 p.m.
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?