VM Maker: Cog-nice.331.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-nice.331.mcz

commits-2
 
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]!