[Vm-dev] VM Maker: VMMaker.oscog-eem.1366.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jun 19 18:11:27 UTC 2015


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

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

Name: VMMaker.oscog-eem.1366
Author: eem
Time: 19 June 2015, 11:08:41.465 am
UUID: caed09f8-bf82-445d-b581-1d65e2b6882c
Ancestors: VMMaker.oscog-eem.1365

ARM Cogit:
Revise the outOfLineLiteralOpcodeLimit since
more thna one hardware nstruction can be emitted
per abstracxt opcode.  The old code fell foul of
IntegerTest>>#testIntegerPadding which contains
many literals but no jumps or returns.

=============== Diff against VMMaker.oscog-eem.1365 ===============

Item was changed:
  ----- Method: CogOutOfLineLiteralsARMCompiler>>outOfLineLiteralOpcodeLimit (in category 'compile abstract instructions') -----
  outOfLineLiteralOpcodeLimit
  	"The maximum offset in a LDR is (1<<12)-1, or (1<<10)-1 instructions.
+ 	 Be conservative.  The issue is that one abstract instruction can emit
+ 	 multiple hardware instructions so we assume a 2 to 1 worst case of
+ 	 hardware instructions to abstract opcodes.."
+ 	^1 << (12 "12-bit offset field"
+ 			- 2 "4 bytes per literal"
+ 			- 1 "2 hardware instructions to 1 abstract opcode") - 1!
- 	 Be a little conservative."
- 	^1<<(12-2) - 4!



More information about the Vm-dev mailing list