[LLVMdev] What CCAssignToXXXWithShadow means?

Anton Korobeynikov anton at korobeynikov.info
Fri Sep 23 04:43:51 PDT 2011


>  I think ecx and xmm0 are physical different registers (not like ecx
> and cx), right? So why we cannot use xmm0 while ecx has been used? Is
> it just a rule or there are some considerations behind it?
Yes. Due to way how varargs stuff is implemented. You always have data
in, say, general-purpose regs regardless of whether it's floating
point or integer.

>  If we assign to R0, then R0 is marked occupied. Is it a redundant
> statement?
Here - yes. Just to make sure alignment works.

>  If you can point me to some reference aboue "register alignment", I'll
> be very appreciate it. Does register alignment bring benefit? In other
> word, why register alignment is needed?
This is documented in AAPCS ABI.

>  So the word "shadow" on http://www.heyrick.co.uk/assembler/regs.html
> means different thing, hugh?
Yes. Here "shadow" is Microsoft term.

for more information

With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University

More information about the llvm-dev mailing list