[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