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