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

commits at source.squeak.org commits at source.squeak.org
Sun Apr 19 19:34:49 UTC 2015


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

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

Name: VMMaker.oscog-eem.1221
Author: eem
Time: 19 April 2015, 12:32:58.489 pm
UUID: 8fd9dd12-6a9b-441f-8a1d-deb53c09117e
Ancestors: VMMaker.oscog-eem.1220

Correct CogARMCompiler>>literalBeforeFollowingAddress:
so it also deals with PushCw instructions.

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

Item was added:
+ ----- Method: CogARMCompiler>>instructionIsOR: (in category 'testing') -----
+ instructionIsOR: instr
+ 	"is this an ORR instruction?"
+ 	^(instr >> 21 bitAnd: 16rF) = 16rC!

Item was changed:
  ----- Method: CogARMCompiler>>literalBeforeFollowingAddress: (in category 'inline cacheing') -----
  literalBeforeFollowingAddress: followingAddress
+ 	"Answer the long constant loaded by a MOV/ORR/ORR/ORR
+ 	 or MOV/ORR/ORR/ORR/PUSH  sequence, just before this address:"
+ 	^(self instructionIsOR: (objectMemory longAt: followingAddress - 4))
+ 		ifTrue:
+ 			[   ((objectMemory byteAt: followingAddress - 16) << 24)
+ 			+  ((objectMemory byteAt: followingAddress - 12) << 16)
+ 			+  ((objectMemory byteAt: followingAddress - 8) << 8)
+ 			+   (objectMemory byteAt: followingAddress - 4)]
+ 		ifFalse:
+ 			[   ((objectMemory byteAt: followingAddress - 20) << 24)
+ 			+  ((objectMemory byteAt: followingAddress - 16) << 16)
+ 			+  ((objectMemory byteAt: followingAddress - 12) << 8)
+ 			+   (objectMemory byteAt: followingAddress - 8)]!
- 	"Answer the long constant loaded by a MOV/ORR/ORR/ORR sequence just before this address:"
- 	^  ((objectMemory byteAt: followingAddress - 16) << 24)
- 	+  ((objectMemory byteAt: followingAddress - 12) << 16)
- 	+  ((objectMemory byteAt: followingAddress - 8) << 8)
- 	+   (objectMemory byteAt: followingAddress - 4) !



More information about the Vm-dev mailing list