Re: build error

new topic     » goto parent     » topic index » view thread      » older message » newer message
jimcbrown said...
mattlewis said...

Well, having enough arm eubins is part of more mature support, to me. tongue Also, we don't currently have any "official" eubins for ARM. I think generous and adventurous souls have uploaded theirs.

We have official eubins for ARM: http://openeuphoria.org/eubins/linux/4.1.0/arm-32-bit/

(They are out of date, but this is the case for all the linux eubins, sadly.)

Oh, whoops, I wasn't paying attention, apparently.

jimcbrown said...
mattlewis said...

Hmm...yes, they seem to have some kind of fake out going on between soft and hard float stuff. It's still a bit over my head. They mention runtime detection of hard vs soft float. I think we'll need to figure that out in order to get the ABI correct.

I'd have hoped that GCC would have taken care of all that stuff for us...

I don't think it can. I mean, as far as our compiled C it's no problem, but be_callc.c is a whole 'nother ball of wax. In general, 4 integer registers are used for passing parameters, and then stuff goes onto the stack.

For hardfloat, the floating point registers are used (and actually, I suspect that my current implementation will break when passing floats instead of doubles, but I haven't tested it yet...we need to add C_FLOAT tests to t_callc.e). There are 16 of those, and I think they all can be used. They're also used to return floating point return values.

But soft floats break up floating point values across registers / the stack (well, doubles get spread out, floats obviously fit inside of the regular 32-bit registers).

Matt

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu