[Vm-dev] VM Maker: VMMaker-tpr.326.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Oct 8 01:21:59 UTC 2013


tim Rowledge uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-tpr.326.mcz

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

Name: VMMaker-tpr.326
Author: tpr
Time: 7 October 2013, 6:20:33.98 pm
UUID: c46b8256-3e54-4d34-aac2-5643fddc3bab
Ancestors: VMMaker-tpr.325

Fix a single-bit constant error in BitBltSimulation>>copyBits:Fallback: - change 16r3FFF to 16r7FFF to correct tallyIntoMap behaviour for Scratch using BenBlt on the Pi.

=============== Diff against VMMaker-tpr.325 ===============

Item was changed:
  ----- Method: BitBltSimulation>>copyBits:Fallback: (in category 'setup') -----
  copyBits: op Fallback: flags
  	"Recover from the fast path specialised code saying Help-I-cant-cope"
  	|done |
  	<static: false>
  	<returnTypeC: 'void'>
  	<inline: false>
  	<var: #op type: 'operation_t *'>
  	<var: #flags type:'unsigned int'>
  	self isDefined: #'ENABLE_FAST_BLT'
  	inSmalltalk: [false]
  	comment: 'only for fast blt platform specific code'
  	ifTrue:[
  			"recover values from the operation struct used by the fast ARM code"
  			self cCode:'
  	combinationRule = op->combinationRule;
  	noSource = op->noSource;
  	sourceBits = (sqInt) op->src.bits;
  	sourcePitch = op->src.pitch;
  	sourceDepth = op->src.depth;
  	sourceMSB = op->src.msb;
  	sx = op->src.x;
  	sy = op->src.y;
  	destBits = (sqInt) op->dest.bits;
  	destPitch = op->dest.pitch;
  	destDepth = op->dest.depth;
  	destMSB = op->dest.msb;
  	dx = op->dest.x;
  	dy = op->dest.y;
  	bbW = op->width;
  	bbH = op->height;
  	cmFlags = op->cmFlags;
  	cmShiftTable = (void *) op->cmShiftTable;
  	cmMaskTable = (void *) op->cmMaskTable;
  	cmMask = op->cmMask;
  	cmLookupTable = (void *) op->cmLookupTable;
  	noHalftone = op->noHalftone;
  	halftoneHeight = op->halftoneHeight;
  	halftoneBase = (sqInt) op->halftoneBase;
  	if (combinationRule == 30 || combinationRule == 31) {
  		sourceAlpha = op->opt.sourceAlpha;
  	}
  	if (combinationRule == 41) {
  		componentAlphaModeColor = op->opt.componentAlpha.componentAlphaModeColor;
  		componentAlphaModeAlpha = op->opt.componentAlpha.componentAlphaModeAlpha;
  		gammaLookupTable = (void *) op->opt.componentAlpha.gammaLookupTable;
  		ungammaLookupTable = (void *) op->opt.componentAlpha.ungammaLookupTable;
  	}'.
  	
  				destPPW := 32 / destDepth.
  				cmBitsPerColor := 0.
  				cmMask = 16r1FF ifTrue: [cmBitsPerColor := 3].
  				cmMask = 16rFFF ifTrue: [cmBitsPerColor := 4].
+ 				cmMask = 16r7FFF ifTrue: [cmBitsPerColor := 5].
- 				cmMask = 16r3FFF ifTrue: [cmBitsPerColor := 5].
  	
  				"Try a shortcut for stuff that should be run as quickly as possible"
  				done := self tryCopyingBitsQuickly.
  				done ifTrue:[^nil].
  
  				bitCount := 0.
  				"Choose and perform the actual copy loop."
  				self performCopyLoop]
  
  	
  
  
  !



More information about the Vm-dev mailing list