Runtime for ARM

Kai Nacke kai at redstar.de
Tue May 14 20:30:10 PDT 2013


On Saturday, 16 February 2013 at 18:38:49 UTC, Paolo Invernizzi 
wrote:
> 
> Right now the first problem is that I've a bunch of:
>
>   Assertion failed: (size >= excess && "expected larger 
> existing stack allocation"), function HandleByVal, file 
> ARMISelLowering.cpp, line 1681.
>

Hi Paolo!

Just an assumption: You need to write an ABI class for ARM.
HandleByVal is called during argument lowering in LLVM. The 
comment of this function says:

/// HandleByVal - Every parameter *after* a byval parameter is 
passed
/// on the stack.  Remember the next parameter register to 
allocate,
/// and then confiscate the rest of the parameter registers to 
insure
/// this.

I can imagine that there is something wrong with the calling 
convention in LDC. You should look at gen/abi-x86.cpp and 
gen/abi-x86-64.cpp to get a feeling what you need to do. Then 
write an abi-arm which models the ARM calling convention. It is 
really easy if you have an understanding of the used calling 
convention.

But remember: this is only a shot in the dark from me. I never 
got that far on my ARM box...

Regards
Kai


More information about the digitalmars-d-ldc mailing list