[Vm-dev] InterpreterProxy>>positiveMachineIntegerValueOf

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Nov 8 01:19:03 UTC 2016


I've forgotten a few longs, at least these:
- signed32BitValueOf: because it was mixed with another change (simplify
and inline the 64 bits version)
- SpurGenerationScavenger remembered table (population) : seems to be only
a ref count
- VMProfiling primitives seems less clear

Eliot, do you have a hint for the last two?

2016-11-06 22:12 GMT+01:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> 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@
> 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/20161108/56df9e1f/attachment-0001.html>


More information about the Vm-dev mailing list