IRInstruction.st
changeset 23 377bc46cad12
parent 10 0fd549e0c784
child 26 db19d89eef60
--- 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 §'
 ! !