public static IRubyObject fixnumOperator(ThreadContext context, IRubyObject caller, IRubyObject self, JRubyCallSite site, long value) throws Throwable {
String operator = site.name();
String opMethod = MethodIndex.getFastFixnumOpsMethod(operator);
String name = "fixnum_" + opMethod;
MethodType type = methodType(IRubyObject.class, ThreadContext.class, IRubyObject.class, IRubyObject.class);
MethodHandle target = null;
if (operator.equals("+") || operator.equals("-")) {
if (value == 1) {
name += "_one";
target = lookup().findStatic(MathLinker.class, name, type);
} else if (value == 2) {
name += "_two";
target = lookup().findStatic(MathLinker.class, name, type);
}
}
if (target == null) {
type = type.insertParameterTypes(3, long.class);
target = lookup().findStatic(MathLinker.class, name, type);
target = insertArguments(target, 3, value);
}
MethodHandle fallback = lookup().findStatic(MathLinker.class, "fixnumOperatorFail",