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!
vm-dev@lists.squeakfoundation.org