cs132.vapor.ast
Class VCall

java.lang.Object
  extended by cs132.vapor.ast.Node
      extended by cs132.vapor.ast.VInstr
          extended by cs132.vapor.ast.VCall

public class VCall
extends VInstr

Function call instruction.


Nested Class Summary
 
Nested classes/interfaces inherited from class cs132.vapor.ast.VInstr
VInstr.Visitor<E extends Throwable>, VInstr.VisitorP<P,E extends Throwable>, VInstr.VisitorPR<P,R,E extends Throwable>, VInstr.VisitorR<R,E extends Throwable>
 
Field Summary
 VAddr<VFunction> addr
          The address of the function being called.
 VOperand[] args
          The list of arguments to pass to the function.
 VVarRef.Local dest
          The variable used to store the return value of the function.
 
Fields inherited from class cs132.vapor.ast.Node
sourcePos
 
Constructor Summary
VCall(SourcePos sourcePos, VAddr<VFunction> addr, VOperand[] args, VVarRef.Local dest)
           
 
Method Summary
<P,E extends Throwable>
void
accept(P p, VInstr.VisitorP<P,E> v)
          Relay for VInstr.VisitorP
<P,R,E extends Throwable>
R
accept(P p, VInstr.VisitorPR<P,R,E> v)
          Relay for VInstr.VisitorPR
<E extends Throwable>
void
accept(VInstr.Visitor<E> v)
          Relay for VInstr.Visitor
<R,E extends Throwable>
R
accept(VInstr.VisitorR<R,E> v)
          Relay for VInstr.VisitorR
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

addr

public final VAddr<VFunction> addr
The address of the function being called.


args

public final VOperand[] args
The list of arguments to pass to the function. These cannot be registers.


dest

public final VVarRef.Local dest
The variable used to store the return value of the function. This is optional and might be null, in which case the return value is ignored.

Constructor Detail

VCall

public VCall(SourcePos sourcePos,
             VAddr<VFunction> addr,
             VOperand[] args,
             VVarRef.Local dest)
Method Detail

accept

public <E extends Throwable> void accept(VInstr.Visitor<E> v)
            throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.Visitor

Specified by:
accept in class VInstr
Throws:
E extends Throwable

accept

public <R,E extends Throwable> R accept(VInstr.VisitorR<R,E> v)
         throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.VisitorR

Specified by:
accept in class VInstr
Throws:
E extends Throwable

accept

public <P,E extends Throwable> void accept(P p,
                                           VInstr.VisitorP<P,E> v)
            throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.VisitorP

Specified by:
accept in class VInstr
Throws:
E extends Throwable

accept

public <P,R,E extends Throwable> R accept(P p,
                                          VInstr.VisitorPR<P,R,E> v)
         throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.VisitorPR

Specified by:
accept in class VInstr
Throws:
E extends Throwable