Nicolas Cellier uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-nice.331.mcz==================== Summary ====================
Name: Cog-nice.331
Author: nice
Time: 29 November 2016, 2:33:51.558777 am
UUID: 892573e1-367b-4f88-91f5-37d8d62e3be2
Ancestors: Cog-eem.330
Fix the Win64 x64 register arguments
=============== Diff against Cog-eem.330 ===============
Item was changed:
----- Method: BochsX64Alien>>postCallArgumentsNumArgs:in: (in category 'execution') -----
postCallArgumentsNumArgs: numArgs "<Integer>" in: memory "<ByteArray|Bitmap>"
"Answer an argument vector of the requested size after a vanilla
+ ABI call. On X64 this simply means accessing register arguments.
- ABI call. On X86 this simply means accessing register arguments.
For compatibility with Cog/Slang we answer unsigned values."
self assert: numArgs <= 4. "Microsoft & System V agree for the first 4 reg args oinly"
+ ^((CogX64Compiler isSysV
- ^((CogX64Compiler ABI == #SysV
ifTrue: [#(rdi rsi rdx rcx r8 r9)]
+ ifFalse: [#(rcx rdx r8 r9)]) copyFrom: 1 to: numArgs) collect:
- ifFalse: [#(rdi rsi r8 r9)]) copyFrom: 1 to: numArgs) collect:
[:getter|
self perform: getter]!