Displaying 3 results from an estimated 3 matches for "ccifalign".
2011 Sep 23
2
[LLVMdev] What CCAssignToXXXWithShadow means?
...ow <registerList, shadowList>
— similar to CCAssignToReg, but with a shadow list of registers
I don't know when we should use CCAssignToRegWithShadow. Because
I am not a architecture expert, please bear with my naive question.
Take ARMCallingConv.td as an example,
CCIfType<[i32], CCIfAlign<"8", CCAssignToRegWithShadow<[R0, R2], [R0, R1]>>>
If we assign a value to R0(R2), then what happen to R0(R1)?
def RetCC_ARM_AAPCS_Common : CallingConv<[
CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>>,
CCIfType<[i64], CCAssignToRegWithShadow<[...
2011 Sep 23
0
[LLVMdev] What CCAssignToXXXWithShadow means?
...incoming argument another one
cannot be used for argument allocation.
On Win64 general purpose registers shadow xmm and vice versa, so, say,
if you put argument into ecx, the xmm0 is marked as already occupied,
if you put argument into xmm1, edx is marked as occupied, etc.
> CCIfType<[i32], CCIfAlign<"8", CCAssignToRegWithShadow<[R0, R2], [R0, R1]>>>
>
> If we assign a value to R0(R2), then what happen to R0(R1)?
It will be marked as occupied.
> def RetCC_ARM_AAPCS_Common : CallingConv<[
> CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>>,
&...
2011 Sep 23
1
[LLVMdev] What CCAssignToXXXWithShadow means?
...d,
> if you put argument into xmm1, edx is marked as occupied, etc.
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?
>> CCIfType<[i32], CCIfAlign<"8", CCAssignToRegWithShadow<[R0, R2], [R0,
>> R1]>>>
>>
>> If we assign a value to R0(R2), then what happen to R0(R1)?
>It will be marked as occupied.
If we assign to R0, then R0 is marked occupied. Is it a redundant
statement?
> Yes. On ARM s...