% Branch if int comparison (LE) with zero Succeeds

meth Ifle =^ (

var branchoffset : Int

var b : Bytecode

var o : Object

var op : Int

var CurrentFrame : FrameInfo

TopFrame.GetFrame(CurrentFrame);

% getting the branchoffset value

currentFrame.GetNextBytecode(b);

b.GetCode(branchoffset);

 

% the int value is popped from the operand stack

currentFrame.Pop(o);

if [] o isExactly DataInfoInt (DataInfoInt) o.GetInfo(op);

[] not (o isExactly DataInfoInt) miracle

fi

If [] op <= 0

% modifying the PC register

currentFrame.Branch (branchoffset);

fi

TopFrame.SetFrame(CurrentFrame);

end end end end end

)

end