[Vm-dev] VM Maker: VMMaker.oscog-EstebanLorenzano.1482.mcz

Esteban Lorenzano estebanlm at gmail.com
Tue Sep 29 15:04:58 UTC 2015


Hi Eliot, 

it started to happen when bootstrapping (since we still do not move development to spur, we still bootstrap each version). 
create explicitly a BoxedFloat64 would work?

Esteban

> On 29 Sep 2015, at 16:57, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> 
> 
> Hi Esteban,
> 
>    in 64-bit spur 0.0 is an immediate so this won't work.  We have to think harder.  What context do you see the error in?
> 
> _,,,^..^,,,_ (phone)
> 
>> On Sep 29, 2015, at 7:55 AM, commits at source.squeak.org wrote:
>> 
>> 
>> Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:
>> http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1482.mcz
>> 
>> ==================== Summary ====================
>> 
>> Name: VMMaker.oscog-EstebanLorenzano.1482
>> Author: EstebanLorenzano
>> Time: 29 September 2015, 4:49:27.731611 pm
>> UUID: 82196012-eb6f-4ab2-b5aa-5cef663d6f13
>> Ancestors: VMMaker.oscog-eem.1481
>> 
>> Float new: 2 is invalind, changing it for 0.0 seems to work fine.
>> 
>> =============== Diff against VMMaker.oscog-eem.1481 ===============
>> 
>> Item was changed:
>> ----- Method: Spur32BitMemoryManager>>floatValueOf: (in category 'interpreter access') -----
>> floatValueOf: oop
>>     "Answer the C double precision floating point value of the argument,
>>      or fail if it is not a Float, and answer 0.
>>      Note: May be called by translated primitive code."
>> 
>>     | isFloat result |
>>     <returnTypeC: #double>
>>     <var: #result type: #double>
>>     isFloat := self isFloatInstance: oop.
>>     isFloat ifTrue:
>> +        [self cCode: '' inSmalltalk: [result := 0.0].
>> -        [self cCode: '' inSmalltalk: [result := Float new: 2].
>>          self fetchFloatAt: oop + self baseHeaderSize into: result.
>>          ^result].
>>     coInterpreter primitiveFail.
>>     ^0.0!
>> 



More information about the Vm-dev mailing list