scale.backend.mips
Class PrologMarker

java.lang.Object
  extended by scale.backend.Instruction
      extended by scale.backend.Marker
          extended by scale.backend.mips.PrologMarker
All Implemented Interfaces:
java.lang.Cloneable

public class PrologMarker
extends Marker

This class marks the position for the routine prolog.

$Id: PrologMarker.java,v 1.6 2005-02-07 21:27:24 burrill Exp $

Copyright 2005 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

Assembly language for the MIPS requires that the assembly program specify information about a routine for the loader and debugger. This "prolog" information must come after various instructions that comprise the routine entry.


Constructor Summary
PrologMarker(int mask, int fmask, int frameSize, int frameOffset)
          Create a marker for generating the routine prolog information.
 
Method Summary
 void assembler(Assembler asm, Emit emit)
          Insert the assembler directive for the prolog.
 
Methods inherited from class scale.backend.Marker
getExecutionCycles, getOpcode, independent, instructionSize, isMarker, nullify, remapDestRegister, remapRegisters, remapSrcRegister, specifyRegisterUsage, toString
 
Methods inherited from class scale.backend.Instruction
canBeDeleted, clone, copy, defs, ehash, getBBID, getCopyDest, getCopySrc, getDestRegister, getFunctionalUnit, getLoopNumber, getNext, getPredicate, getPredicates, getSrcRegisters, getTag, isBranch, isCopy, isLabel, isLoad, isMandatory, isPhi, isPredicated, isPredicatedOnTrue, isPrefetch, isSpillInstruction, isSpillLoadPoint, isSpillStorePoint, isStore, markSpillInstruction, mods, nullified, numPredicates, removePredicates, setBBID, setLoopNumber, setMandatory, setNext, setPredicate, setPredicate, setPredicatedOnTrue, setPredicates, setsSpecialReg, setTag, specifyNotSpillLoadPoint, specifySpillStorePoint, uses
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PrologMarker

public PrologMarker(int mask,
                    int fmask,
                    int frameSize,
                    int frameOffset)
Create a marker for generating the routine prolog information.

While executing the routine:

The stack_pointer is kept in the SP register.

Parameters:
mask - specifies which integer registers are saved by this routine
fmask - specifies which floating point registers are saved by this routine
frameSize - specifies the size in bytes of the stack frame for this routine and must be a multiple of 16
frameOffset - specifies the offset from the virtual frame pointer to the saved registers
Method Detail

assembler

public void assembler(Assembler asm,
                      Emit emit)
Insert the assembler directive for the prolog.

Overrides:
assembler in class Marker