[Vm-dev] InterpreterProxy>>positiveMachineIntegerValueOf

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sun Nov 6 21:12:06 UTC 2016


Hi Eliot,
I decomposed the CMMake.oscogLLP64 changes and applied them on oscog branch:
These changes are essentially a rename:
- long -> sqInt (unsigned long -> usqInt) for oops
- long -> sqIntptr_t (unsigned long -> usqIntptr_t) for target machine
words (pointer/address).
Since the types are equivalent on ILP32 and LP64 the changes are very
superficial and should not break anything.

I have not applied other changes because they touch code generation a bit
more.
They are not strictly necessary, they should be independent, and we'd
better wait for the CI smoke tests to be operational.
That's the sole way to test codeGeneration changes...

2016-11-04 19:52 GMT+01:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> Hi Eliot,
> we just have to integrate the usqIntptr_t changes that are ready in
> oscogLLP64 branch.
> I'm uploading an up-to-date version (if no timeout)
>
>
> 2016-11-04 19:30 GMT+01:00 Eliot Miranda <eliot.miranda at gmail.com>:
>
>>
>> Hi Nicolas,
>>
>>
>>     with Win64 what;s the right way to declare something as having an
>> unsigned integer type as large as the word size (unsigned long long on
>> 64-bits, unsigned long on 32-bits)?
>>
>> This is to declare the following correctly.  Its return type is used to
>> declare the function pointers inside a plugin correctly.  Currently it is
>> not correctly defined for Win64:
>>
>> InterpreterProxy>>positiveMachineIntegerValueOf: oop
>> <returnTypeC: #'unsigned long'>
>> oop isInteger ifFalse:[self error: 'Not an integer object'].
>> ^oop < 0
>> ifTrue: [self primitiveFail. 0]
>> ifFalse: [oop]
>>
>> _,,,^..^,,,_
>> best, Eliot
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20161106/87f094ae/attachment.html>


More information about the Vm-dev mailing list