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?