[Vm-dev] VM Maker: Cog-eem.342.mcz

commits at source.squeak.org commits at source.squeak.org
Mon May 29 05:45:58 UTC 2017


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.342.mcz

==================== Summary ====================

Name: Cog-eem.342
Author: eem
Time: 28 May 2017, 10:45:46.436283 pm
UUID: c50cecd8-9ed1-4c1c-962d-96c3f8af7b0d
Ancestors: Cog-eem.341

Smashing the shadow parameter space must take PostBuildStackDelta into account.

=============== Diff against Cog-eem.341 ===============

Item was changed:
  ----- Method: BochsX64Alien>>smashCallerSavedRegistersWithValuesFrom:by:in: (in category 'accessing-abstract') -----
  smashCallerSavedRegistersWithValuesFrom: base by: step in: aMemory
  	| volatileRegisters |
  	CogX64Compiler isSysV
  		ifTrue:
  			[volatileRegisters := #(rax: rcx: rdx: rsi: rdi: r8: r9: r10: r11:)]
  		ifFalse: "We should also save the registers to the shadow parameter space."
  			[volatileRegisters := #(rax: rcx: rdx: r8: r9: r10: r11:).
  			 #(rcx rdx r8 r9) withIndexDo:
  				[:getter :index|
  				 aMemory
+ 					unsignedLong64At: self rbp + PostBuildStackDelta + 8 + (index * 8) "skip saved fp and retpc"
- 					unsignedLong64At: self rbp + 8 + (index * 8) "skip saved fp and retpc"
  					put: (self perform: getter)]].
  	volatileRegisters withIndexDo:
  		[:setter :index|
  		self perform: setter with: index - 1 * step + base]!



More information about the Vm-dev mailing list