[Vm-dev] VM Maker Inbox: VMMaker.oscog-KenD.2511.mcz

Eliot Miranda eliot.miranda at gmail.com
Tue Jan 22 18:08:29 UTC 2019


Hi Ken,

    I don’t understand this proposed change.  float is a 32-bit datatype, double is a 64-bit datatype.  My understanding is that on ARM64 floating-point arguments are passed as doubles.  What am I missing?

_,,,^..^,,,_ (phone)

> On Jan 22, 2019, at 9:02 AM, commits at source.squeak.org wrote:
> 
> 
> A new version of VMMaker was added to project VM Maker Inbox:
> http://source.squeak.org/VMMakerInbox/VMMaker.oscog-KenD.2511.mcz
> 
> ==================== Summary ====================
> 
> Name: VMMaker.oscog-KenD.2511
> Author: KenD
> Time: 22 January 2019, 9:00:55.084764 am
> UUID: d4e9e0d4-b0bb-4bf0-84c0-b173cf9d8362
> Ancestors: VMMaker.oscog-eem.2510
> 
> Needed 
>  StackInterpreter initializeMiscConstants.
> and
>  double -> float for floatArgRegisters
> 
> =============== Diff against VMMaker.oscog-eem.2510 ===============
> 
> Item was changed:
>  ----- Method: ThreadedFFICalloutStateForARM64 class>>instVarNamesAndTypesForTranslationDo: (in category 'translation') -----
>  instVarNamesAndTypesForTranslationDo: aBinaryBlock
>      "enumerate aBinaryBlock with the names and C type strings for the inst vars to include in a ThreadedFFICalloutState struct."
> 
>      superclass instVarNamesAndTypesForTranslationDo: aBinaryBlock.
>      self instVarNames do:
>          [:ivn|
>          aBinaryBlock
>              value: ivn
>              value: (ivn caseOf: {
>                          ['integerRegisters']    -> [{#sqInt. '[NumIntRegArgs]'}].
> +                        ['floatRegisters']    -> [{#float. '[NumFloatRegArgs]'}] }
> -                        ['floatRegisters']    -> [{#double. '[NumFloatRegArgs]'}] }
>                      otherwise:
>                          [#sqInt])]!
> 


More information about the Vm-dev mailing list