Examples of Temp


Examples of compiler.frames.Temp

          result = val1 / val2;
          break;
      }
     
      LinkedList<Temp> def = new LinkedList<Temp>();
      def.add(new Temp());
     
      if (result < 4096)
      {
        instructions.add(new AsmOPER("mov `d0, #" + result, def, new LinkedList<Temp>()));
      }
      else
      {
        instructions.add(new AsmOPER("ldr `d0, =" + result, def, new LinkedList<Temp>()));
      }
     
      return def.getFirst();
    }
    // Check for immediate values
    else
    {
      String command = "";
     
      // Evaulate left and right sides
      Temp val1 = munch((ImcExpr)binop.limc);
      Temp val2 = munch((ImcExpr)binop.rimc);
     
      switch(binop.op)
      {
        case ImcBINOP.ADD:
          command = "add";
          break;
        case ImcBINOP.SUB:
          command = "sub";
          break;
        case ImcBINOP.MUL:
          command = "mul";
          break;
        case ImcBINOP.DIV:
          return inlineDivAlgorithm(val1, val2);         
      }
     
      Temp result = new Temp();
     
      LinkedList<Temp> defs = new LinkedList<Temp>();
      defs.add(result);
     
      LinkedList<Temp> srcs = new LinkedList<Temp>();
View Full Code Here

Examples of compiler.frames.Temp

  private Temp inlineDivAlgorithm(Temp val1, Temp val2)
  {
    LinkedList<Temp> uses = new LinkedList<Temp>();
    LinkedList<Temp> defs = new LinkedList<Temp>();
   
    Temp result = new Temp();
    defs.add(result);
   
    Temp tmp = new Temp();
   
    // Clear result register for accumulation
    // MOV R0, #0
    instructions.add(new AsmOPER("mov `d0, #0", defs, new LinkedList<Temp>()));
   
View Full Code Here

Examples of compiler.frames.Temp

    return result;
  }
 
  private Temp munchLogical(ImcBINOP binop)
  {
    Temp result = new Temp();
    LinkedList<Temp> dst = new LinkedList<Temp>();
    dst.add(result);
   
    Temp left = munch(binop.limc);
    Temp right = munch(binop.rimc);
   
    LinkedList<Temp> src = new LinkedList<Temp>();
    src.add(left);
    src.add(right);
   
View Full Code Here

Examples of org.renjin.compiler.ir.tac.expressions.Temp

  public Expression translateToExpression(IRBodyBuilder builder, TranslationContext context, FunctionCall call) {
    SimpleExpression condition = builder.translateSimpleExpression(context, call.getArgument(0));
   
    // since "if" is being used in the context of an expression, we need
    // to store its final value somewhere
    Temp ifResult = builder.newTemp();
   
    IRLabel trueTarget = builder.newLabel();
    IRLabel falseTarget = builder.newLabel();
    IRLabel endLabel = builder.newLabel();
   
View Full Code Here

Examples of org.renjin.compiler.ir.tac.expressions.Temp

  @Override
  public Expression translateToExpression(IRBodyBuilder builder,
      TranslationContext context, FunctionCall call) {
   
    Temp result = builder.newTemp();
    IRLabel firstTrue = builder.newLabel(); /* first is true, need to check second */
    IRLabel firstNA = builder.newLabel(); /* first is NA, need to check second */
   
    IRLabel test2Label = builder.newLabel(); /* conduct second test */

 
View Full Code Here

Examples of org.renjin.compiler.ir.tac.expressions.Temp

  @Override
  public Expression translateToExpression(IRBodyBuilder builder,
      TranslationContext context, FunctionCall call) {

    Temp result = builder.newTemp();
    IRLabel firstFalse = builder.newLabel(); /* first is false, need to check second */
    IRLabel firstNA = builder.newLabel(); /* first is NA, need to check second */
   
    IRLabel test2Label = builder.newLabel(); /* conduct second test */

 
View Full Code Here

Examples of org.renjin.compiler.ir.tac.expressions.Temp

  private void addForLoop(IRBodyBuilder factory, TranslationContext context, FunctionCall call) {
   
    Symbol symbol = call.getArgument(0);
    LocalVariable counter = factory.newLocalVariable();
    Temp length = factory.newTemp();
   
    Variable elementVariable = new EnvironmentVariable(symbol);
   
    Expression vector =
        factory.translateSimpleExpression(context, call.getArgument(1));
View Full Code Here

Examples of temp.Temp

static StmExpList reorder(ExpList exps) {
     if (exps==null) return nopNull;
     else {
       Exp a = exps.head;
       if (a instanceof CALL) {
         Temp t = new Temp();
   Exp e = new ESEQ(new MOVE(new TEMP(t), a),
            new TEMP(t));
         return reorder(new ExpList(e, exps.tail));
       } else {
   ESEQ aa = do_exp(a);
   StmExpList bb = reorder(exps.tail);
   if (commute(bb.stm, aa.exp))
        return new StmExpList(seq(aa.stm,bb.stm),
            new ExpList(aa.exp,bb.exps));
   else {
     Temp t = new Temp();
     return new StmExpList(
        seq(aa.stm,
          seq(new MOVE(new TEMP(t),aa.exp),
         bb.stm)),
        new ExpList(new TEMP(t), bb.exps));
View Full Code Here

Examples of temp.Temp

        return new Nx(new IRTree2.MOVE(new IRTree2.BINOP(IRTree2.BINOP.PLUS,new IRTree2.MEM(expId), new IRTree2.BINOP(IRTree2.BINOP.MUL,e1,new IRTree2.CONST(4))), e2));
  }

  public Exp visit(AndExp n)
  {
          Temp t1 = new Temp();
      Label done = new Label();
      Label ok1 = new Label();
      Label ok2 = new Label();
     
      IRTree2.Exp left =  n.e1.accept(this).unEx();
View Full Code Here

Examples of temp.Temp

  {
          Exp expl= n.e1.accept(this);
      Exp expr= n.e2.accept(this);
      Label T = new Label();
      Label F = new Label();
      Temp t = new Temp();
      return new Ex
          (new IRTree2.ESEQ(new IRTree2.SEQ
                (new IRTree2.SEQ
                 (new IRTree2.SEQ
                  (new IRTree2.MOVE(new IRTree2.TEMP(t),new IRTree2.CONST(0)),
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.