MiniIR SPECIFICATION MiniIR (Minijava Intermediate Representation) is an intermediate representation for Minijava. It has simplified expressions, exposes the runtime model (integer is of size 4, field and method references require accessing of the address of the object, "new" operator is replaced with system call HALLOCATE). procedures: If we have a procedure p [5] s then it takes five arguments, called (temp 0), (temp 1), ..., (temp 4). Other temporaries can be used without declaration. arrays: The index of an array is a multiple of 4, starting at 0. NOOP: Does nothing. ERROR: Terminates the program execution with an error message. CJUMP Exp Label: If Exp evaluates to 1, then continue with the next statement, otherwise jump to Label. HSTORE Exp_1 IntegerLiteral Exp_2: Exp_1 evaluates to an address IntegerLiteral is an offset Exp_2 evaluates to the value that should be stored. HLOAD Temp Exp IntegerLiteral Temp is the temporary into which a value should be loaded Exp evaluates to an address IntegerLiteral is an offset. LT: is "<" HALLOCATE Exp: Exp evaluates to an integer, and that corresponding amount of heapspace is allocated, and the return address of that is returned as the result.