[Vm-dev] Lowcode and x64
Ronie Salgado
roniesalg at gmail.com
Thu Jan 5 02:32:12 UTC 2017
Hi Nicolas,
Thanks for telling me about this. It seems that only
ceInstantiateClassIndexableSizeTrampoline and ceByteSizeOfTrampoline needed
that kind of correction.
During this month I will try to make Lowcode working with x86_64. I need it
working in 64 bits OS X for using Metal with Woden 2, so for me this very
important.
Best regards
Ronie
2016-11-27 18:50 GMT-03:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:
>
> Hi Ronie,
> From my understanding, following code cannot work in x64 because registers
> are overwritten while marshalling arguments:
>
> generateLowcodeObjectTrampolines
> ... snip ...
> ceInstantiateClassIndexableSizeTrampoline := cogit genTrampolineFor:
> #instantiateClass:indexableSize:
> called: '
> ceInstantiateClassIndexableSizeTrampoline'
> arg: ReceiverResultReg
> arg: Arg0Reg
> result: TempReg.
>
> The first arg ReceiverResultReg (RDX) will overwrite Arg0Reg (RDI) before
> Arg0Reg is copied to Arg1Reg (RSI)...
> See genMarshallNArgs:arg:arg:arg:arg:
> and carefully read the comment for the x64 flavour, it's scary ;)
>
> Cheers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170104/2fceea43/attachment.html>
More information about the Vm-dev
mailing list