Hi Anton,
Thanks a lot for the heads up. I hadn't run into any problems yet with my
hack because I haven't used other callee-saved registers so far. Anyway,
I'm
looking forward to your fix!
Kind regards,
Nicolas
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Anton Korobeynikov
Sent: zaterdag 1 augustus 2009 13:00
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Win64 bugs
Hello, Nicolas
> The attached patch is a workaround for the XMM misalignment issue.
Basically> it uses the fallback method of saving and restoring registers on the
stack,> which does work correctly with alignment. If I recall correctly it also
> doesn't save any registers unnecessarily, but I could be wrong about
that.
Please don't use this patch, it's completely wrong. The problem is
that prologue / epilogue emission code is not prepared for such
'fallback' solution and will emit improper stack update code. You can
easily catch this problem when you have other callee-saved registers
spilled (not only high xmm ones).
I have patch which should complete the win64 CC support in LLVM
(modulo varargs functions), I hope to commit it within next few days.
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev