[FIX][VMM] CCodeGenerator fixes for non-inlined VM
Ian Piumarta
ian.piumarta at inria.fr
Thu Sep 11 18:22:46 UTC 2003
On Thu, 11 Sep 2003, Ian Piumarta wrote:
> I'll try building a non-inlined VM anyway, just to make sure it works.
No cigar. The attached changeset fixes a problem where the preIncrement
operator was failing to attach the global struct prefix to its operand.
After applying the changes, adding
UnixVMMaker>>doInlining
^false
and regenerating the VM, I get a working, non-inlined VM:
'75294117 bytecodes/sec; 2931774 sends/sec' (regular)
'10914051 bytecodes/sec; 594140 sends/sec' (non-inlined)
emilia$ size bld/squeak*
__TEXT __DATA __OBJC others dec hex
1024000 225280 0 2854912 4104192 3ea000 bld/squeak (non-inline)
995328 229376 0 2813952 4038656 3da000 bld/squeak (regular)
Ian
-------------- next part --------------
'From Squeak3.6beta of ''4 July 2003'' [latest update: #5411] on 11 September 2003 at 8:17:31 pm'!
"Change Set: CCGenNonInlined-ikp
Date: 11 September 2003
Author: Ian Piumarta
Fixes global struct prefix for preIncrement operator"!
!CCodeGenerator methodsFor: 'C translation' stamp: 'ikp 9/11/2003 20:08'!
generatePreIncrement: msgNode on: aStream indent: level
"Generate the C code for this message onto the given stream."
| varNode |
varNode _ msgNode receiver.
varNode isVariable
ifFalse: [ self error: 'preIncrement can only be applied to variables' ].
aStream nextPutAll: '++'.
aStream nextPutAll: (self returnPrefixFromVariable: varNode name).
! !
More information about the Squeak-dev
mailing list
|