[Vm-dev] VM Maker: VMMaker.oscog-EstebanLorenzano.1672.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jan 28 16:45:48 UTC 2016
Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1672.mcz
==================== 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') -----
primDrainOSEventQueue
+ <option: #NewspeakVM>
<export: true>
self ioDrainEventQueue!
More information about the Vm-dev
mailing list