private void emit_sqrt() { params = new TypeDesc[] {TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "sqrt", TypeDesc.DOUBLE, params); }
private void emit_log() { params = new TypeDesc[] {TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "log", TypeDesc.DOUBLE, params); }
private void emit_abs() { params = new TypeDesc[] {TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "abs", TypeDesc.DOUBLE, params); }
private void emit_miles() { params = new TypeDesc[] {TypeDesc.DOUBLE,TypeDesc.DOUBLE,TypeDesc.DOUBLE, TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "miles", TypeDesc.DOUBLE, params); }
private void emit_neg() { params = new TypeDesc[] {TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "neg", TypeDesc.DOUBLE, params); }
private void emit_bit() { params = new TypeDesc[] {TypeDesc.DOUBLE, TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "bit", TypeDesc.DOUBLE, params); }
private void emit_pow() { params = new TypeDesc[] {TypeDesc.DOUBLE, TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "pow", TypeDesc.DOUBLE, params); }
private void emit_max() { params = new TypeDesc[] {TypeDesc.DOUBLE, TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "max", TypeDesc.DOUBLE, params); }
private void emit_min() { params = new TypeDesc[] {TypeDesc.DOUBLE, TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "min", TypeDesc.DOUBLE, params); }
private void emit_km() { params = new TypeDesc[] {TypeDesc.DOUBLE,TypeDesc.DOUBLE,TypeDesc.DOUBLE, TypeDesc.DOUBLE}; b.invokeStatic("com.flaptor.indextank.index.scorer.ScoreMath", "km", TypeDesc.DOUBLE, params); }
switch (op) { case Opcode.I2F: invokeStatic("java.lang.Float", "intBitsToFloat", TypeDesc.FLOAT, new TypeDesc[] {TypeDesc.INT}); return; invokeStatic("java.lang.Double", "longBitsToDouble", TypeDesc.DOUBLE, new TypeDesc[] {TypeDesc.LONG}); return; invokeStatic("java.lang.Float", "floatToRawIntBits", TypeDesc.INT, new TypeDesc[] {TypeDesc.FLOAT}); } else { invokeStatic("java.lang.Float", "floatToIntBits", TypeDesc.INT, new TypeDesc[] {TypeDesc.FLOAT}); invokeStatic("java.lang.Double", "doubleToRawLongBits", TypeDesc.LONG, new TypeDesc[] {TypeDesc.DOUBLE}); } else { invokeStatic("java.lang.Double", "doubleToLongBits", TypeDesc.LONG, new TypeDesc[] {TypeDesc.DOUBLE});
public void invokeStatic(TypeDesc classDesc, String methodName, TypeDesc ret, TypeDesc[] params) { invokeStatic(getClassName(classDesc), methodName, ret, params); }
public void invokeStatic(String className, String methodName, TypeDesc ret, TypeDesc[] params) { mInstructions.new InvokeInstruction (Opcode.INVOKESTATIC, mCp.addConstantMethod(className, methodName, ret, params), ret, params); }
/** * @param from must be a primitive type * @param to must be an object type */ private void box(TypeDesc from, TypeDesc to) { if (mTarget >= 0x00010005) { // Call the new valueOf method. invokeStatic(to.getRootName(), "valueOf", to, new TypeDesc[] {from}); return; } switch (from.getTypeCode()) { case TypeDesc.BOOLEAN_CODE: toBoolean(true); break; case TypeDesc.CHAR_CODE: case TypeDesc.FLOAT_CODE: case TypeDesc.BYTE_CODE: case TypeDesc.SHORT_CODE: case TypeDesc.INT_CODE: case TypeDesc.DOUBLE_CODE: case TypeDesc.LONG_CODE: invokeConstructor(to.getRootName(), new TypeDesc[]{from}); break; } }
private void generateAddMatchResult(PatternNode node) { mBuilder.mapLineNumber(++mReferenceLine); mBuilder.loadLocal(mLimitLocal); mBuilder.loadLocal(mResultsLocal); mBuilder.loadConstant(node.mPattern); mBuilder.loadThis(); mBuilder.loadField("mValues", TypeDesc.OBJECT.toArrayType()); mBuilder.loadConstant(node.mOrder); mBuilder.loadFromArray(TypeDesc.OBJECT); mBuilder.loadLocal(mPositionsLocal); mBuilder.loadConstant(node.getWildcardCount() * 2); TypeDesc[] params = { mIntType, mListType, mStringType, mObjectType, mIntArrayType, mIntType }; mBuilder.invokeStatic(PatternMatcher.class.getName(), "addMatchResult", mBooleanType, params); mBuilder.ifZeroComparisonBranch(mReturnLabel, "=="); } }
public void invokeStatic(TypeDesc classDesc, String methodName, TypeDesc ret, TypeDesc[] params) { invokeStatic(getClassName(classDesc), methodName, ret, params); }
private void toBoolean(boolean box) { if (box && mTarget >= 0x00010004) { // Call the new valueOf method. invokeStatic("java.lang.Boolean", "valueOf", TypeDesc.BOOLEAN.toObjectType(), new TypeDesc[] {TypeDesc.BOOLEAN}); return; } Label nonZero = createLabel(); Label done = createLabel(); ifZeroComparisonBranch(nonZero, "!="); if (box) { TypeDesc newType = TypeDesc.BOOLEAN.toObjectType(); loadStaticField(newType.getRootName(), "FALSE", newType); branch(done); nonZero.setLocation(); loadStaticField(newType.getRootName(), "TRUE", newType); } else { loadConstant(false); branch(done); nonZero.setLocation(); loadConstant(true); } done.setLocation(); }
private static void addValueHashCodeCallTo(CodeBuilder b, TypeDesc valueType) { if (valueType.isArray()) { if (!valueType.getComponentType().isPrimitive()) { b.invokeStatic("java.util.Arrays", "deepHashCode", TypeDesc.INT, new TypeDesc[] {TypeDesc.forClass(Object[].class)}); } else { b.invokeStatic("java.util.Arrays", "hashCode", TypeDesc.INT, new TypeDesc[] {valueType}); } } else { b.invokeVirtual(TypeDesc.OBJECT, "hashCode", TypeDesc.INT, null); } }
private static void addValueHashCodeCallTo(CodeBuilder b, TypeDesc valueType) { if (valueType.isArray()) { if (!valueType.getComponentType().isPrimitive()) { b.invokeStatic("java.util.Arrays", "deepHashCode", TypeDesc.INT, new TypeDesc[] {TypeDesc.forClass(Object[].class)}); } else { b.invokeStatic("java.util.Arrays", "hashCode", TypeDesc.INT, new TypeDesc[] {valueType}); } } else { b.invokeVirtual(TypeDesc.OBJECT, "hashCode", TypeDesc.INT, null); } }
public void invokeStatic(String className, String methodName, TypeDesc ret, TypeDesc[] params) { mInstructions.new InvokeInstruction (Opcode.INVOKESTATIC, mCp.addConstantMethod(className, methodName, ret, params), ret, params); }