--- a/IRInstruction.st Wed Aug 19 20:28:12 2009 +0000
+++ b/IRInstruction.st Sun Dec 06 08:24:34 2009 +0000
@@ -1,4 +1,4 @@
-"{ Package: 'stx:goodies/newcompiler' }"
+"{ Package: 'cvut:stx/goodies/newcompiler' }"
Link subclass:#IRInstruction
instanceVariableNames:'sourceNode bytecodeIndex sequence'
@@ -7,7 +7,23 @@
category:'NewCompiler-IR'
!
-IRInstruction comment:'I am an instruction in the IR (intermediate representation) language. The IR serves as the intermediary between the Smalltalk language and the bytecode language. It is easier to optimize and translate to/from this language than it is to optimize/translate directly from Smalltalk to bytecodes. The IR is generic and simple consisting of just twelve instructions. They are:
goto: labelNum
if: boolean goto: labelNum1 otherwise: labelNum2
label: labelNum
popTop
pushDup
pushLiteral: object
pushBlock: irMethod
pushBlockMethod: irMethod
pushTemp: tempIndex
remoteReturn
returnTop
send: selector
send: selector toSuperOf: behavior
storeTemp: tempIndex
Each instruction is reified as an instance of one of my eight subclasses and grouped by basic block (IRSequence) into an IRMethod. IRInterpreter visits each instruction in a IRMethod responding to the above instruction messages sent to it.
'
+IRInstruction comment:'I am an instruction in the IR (intermediate representation) language. The IR serves as the intermediary between the Smalltalk language and the bytecode language. It is easier to optimize and translate to/from this language than it is to optimize/translate directly from Smalltalk to bytecodes. The IR is generic and simple consisting of just twelve instructions. They are:
+ goto: labelNum
+ if: boolean goto: labelNum1 otherwise: labelNum2
+ label: labelNum
+ popTop
+ pushDup
+ pushLiteral: object
+ pushBlock: irMethod
+ pushBlockMethod: irMethod
+ pushTemp: tempIndex
+ remoteReturn
+ returnTop
+ send: selector
+ send: selector toSuperOf: behavior
+ storeTemp: tempIndex
+Each instruction is reified as an instance of one of my eight subclasses and grouped by basic block (IRSequence) into an IRMethod. IRInterpreter visits each instruction in a IRMethod responding to the above instruction messages sent to it.
+'
!
@@ -393,5 +409,13 @@
!IRInstruction class methodsFor:'documentation'!
version
- ^'$Id$'
+ ^ '$Header: /cvs/stx/cvut/stx/goodies/newcompiler/IRInstruction.st,v 1.3 2009/10/08 11:55:09 fm Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/cvut/stx/goodies/newcompiler/IRInstruction.st,v 1.3 2009/10/08 11:55:09 fm Exp $'
+!
+
+version_SVN
+ ^'§Id: IRInstruction.st 13 2009-04-16 12:48:33Z vranyj1 §'
! !