[Vm-dev] VM Maker: VMMaker.oscog-EstebanLorenzano.1672.mcz
bera.clement at gmail.com
Thu Jan 28 17:41:47 UTC 2016
I think you reintroduced the old comment that does not make sense any more
as the NewSpeak ABI plugin was merged into the Smalltalk one now that
immutability is in the main VM.
+ !IA32ABIPlugin commentStamp: '<historical>' prior: 0!
+ This plugin implements the Alien foreign-function interface, a small
elaboration on the Strongtalk FFI. This version of the plugin differs from
the NewsqueakIA32ABIPlugin in not supporting immutability.
- !IA32ABIPlugin commentStamp: 'eem 1/25/2016 11:59' prior: 0!
- This plugin implements the Alien foreign-function interface, a small
elaboration on the Strongtalk FFI.
==> not correct.
2016-01-28 17:44 GMT+01:00 <commits at source.squeak.org>:
> Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:
> ==================== Summary ====================
> Name: VMMaker.oscog-EstebanLorenzano.1672
> Author: EstebanLorenzano
> Time: 28 January 2016, 5:38:59.720208 pm
> UUID: 3ed1ee79-ae66-44d8-8366-67899098dfab
> Ancestors: VMMaker.oscog-eem.1671
> added an option for #primDrainOSEventQueue because it just have sense for
> NewspeakVM (and it makes Windows build fails if present).
> =============== Diff against VMMaker.oscog-eem.1671 ===============
> Item was changed:
> InterpreterPlugin subclass: #IA32ABIPlugin
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: 'VMBasicConstants'
> category: 'VMMaker-Plugins-Alien'!
> + !IA32ABIPlugin commentStamp: '<historical>' prior: 0!
> + This plugin implements the Alien foreign-function interface, a small
> elaboration on the Strongtalk FFI. This version of the plugin differs from
> the NewsqueakIA32ABIPlugin in not supporting immutability.
> - !IA32ABIPlugin commentStamp: 'eem 1/25/2016 11:59' prior: 0!
> - This plugin implements the Alien foreign-function interface, a small
> elaboration on the Strongtalk FFI.
> Call-outs are performed by a small number of primitives, one each for
> the four different kinds of return linkage on x86. The primitives are
> var-args. Each primitive has a signature something like:
> primFFICall: functionAddress <Alien> result: result <Alien> with:
> firstArg <Alien> ... with: lastArg <Alien>
> <primitive: 'primCallOutIntegralReturn' module: 'IA32ABI'>
> which arranges to call-out supplying the arguments to the function
> pointed to by functionAddress, copying its return value into result. The
> call-out primitives are as follows:
> primCallOutIntegralReturn call a function which returns up to 8 bytes in
> %eax & %edx, taking up to the first 4 bytes from %eax. i.e. if the
> sizeof(result) is 4 or less only bytes from %eax will be returned, but if
> more then the first 4 bytes of result will be assigned with %eax and
> subsequent bytes with %edx, up to a total of 8 bytes.
> primCallOutPointerReturn call a function which returns a pointer in
> %eax. Assign sizeof(result) bytes from this pointer into the result.
> primCallOutFloatReturn call a function which returns a 4 byte
> single-precision float in %f0, assigning the 4 bytes of %f0 into result.
> primCallOutDoubleReturn call a function which returns an 8 byte
> double-precision float in %f0, assigning the 8 bytes of %f0 into result.
> Item was changed:
> ----- Method: IA32ABIPlugin>>primDrainOSEventQueue (in category
> 'primitives-Windows-VM-specific') -----
> + <option: #NewspeakVM>
> <export: true>
> self ioDrainEventQueue!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev