[Vm-dev] VM Maker: Cog-nice.331.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Nov 29 01:33:59 UTC 2016


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



More information about the Vm-dev mailing list