Modifier and Type | Field and Description |
---|---|
static DivideOp |
div |
static DivideOp |
div0 |
static DivideOp |
floorQuotient |
static DivideOp |
iceil |
static DivideOp |
idiv |
static DivideOp |
mod |
static DivideOp |
mod0 |
static DivideOp |
modulo |
static DivideOp |
quotient |
static DivideOp |
remainder |
static DivideOp |
SLASH |
AND, ASHIFT_GENERAL, ASHIFT_LEFT, ASHIFT_RIGHT, DIVIDE_GENERIC, DIVIDE_INEXACT, IOR, LSHIFT_RIGHT, MODULO, NOT, QUOTIENT, QUOTIENT_EXACT, XOR
applyToObject, noArgs
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
nameKey
Constructor and Description |
---|
DivideOp(java.lang.String name,
int op) |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
apply2(java.lang.Object arg1,
java.lang.Object arg2) |
java.lang.Object |
applyN(java.lang.Object[] args) |
int |
getRoundingMode()
Return one of FLOOR, CEILING, TRUNCATE, ROUND, or 0 if not applicable.
|
int |
numArgs()
Return
minArgs()|(maxArgs<<12) . |
defaultResult, isSideEffectFree
applyToObject
apply0, apply1, apply3, apply4, applyL, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSetter, getSourceLocation, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
public static final DivideOp SLASH
public static final DivideOp idiv
public static final DivideOp iceil
public static final DivideOp floorQuotient
public static final DivideOp quotient
public static final DivideOp remainder
public static final DivideOp modulo
public static final DivideOp div
public static final DivideOp mod
public static final DivideOp div0
public static final DivideOp mod0
public int getRoundingMode()
public java.lang.Object applyN(java.lang.Object[] args) throws java.lang.Throwable
public java.lang.Object apply2(java.lang.Object arg1, java.lang.Object arg2) throws java.lang.Throwable
public int numArgs()
Procedure
minArgs()|(maxArgs<<12)
.
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.