// Path: src/main/java/ocelot/JVMValue.java
// public static JVMValue entry(double d) {
//     return new JVMValue(JVMType.D, Double.doubleToLongBits(d));
// }
// 
// Path: src/main/java/ocelot/JVMValue.java
// public static JVMValue entryRef(long id) {
//     return new JVMValue(JVMType.A, id);
// }


import java.util.Stack;
import static ocelot.JVMValue.entry;
import static ocelot.JVMValue.entryRef;
        push(entry(rem));
    }

    void isub() {
        JVMValue ev1 = pop();
        JVMValue ev2 = pop();
        // For a runtime checking interpreter - type checks would go here...
        int sub = (int) ev1.value - (int) ev2.value;
        push(entry(sub));
    }

    void dup() {
        JVMValue ev = peek().copy();
        push(ev);
    }

    void ineg() {
        JVMValue ev = pop();
        push(entry(-ev.value));
    }

    void iand() {
        JVMValue ev1 = pop();
        JVMValue ev2 = pop();
        // For a runtime checking interpreter - type checks would go here...
        int and = (int) ev1.value & (int) ev2.value;
        push(entry(and));
    }

    void ior() {
// Path: src/main/java/ocelot/JVMValue.java
// public static JVMValue entry(double d) {
//     return new JVMValue(JVMType.D, Double.doubleToLongBits(d));
// }
// 
// Path: src/main/java/ocelot/JVMValue.java
// public static JVMValue entryRef(long id) {
//     return new JVMValue(JVMType.A, id);
// }


// Path: src/main/java/ocelot/InterpEvalStack.java
import java.util.Stack;
import static ocelot.JVMValue.entry;
import static ocelot.JVMValue.entryRef;

        push(entry(rem));
    }

    void isub() {
        JVMValue ev1 = pop();
        JVMValue ev2 = pop();
        // For a runtime checking interpreter - type checks would go here...
        int sub = (int) ev1.value - (int) ev2.value;
        push(entry(sub));
    }

    void dup() {
        JVMValue ev = peek().copy();
        push(ev);
    }

    void ineg() {
        JVMValue ev = pop();
        push(entry(-ev.value));
    }

    void iand() {
        JVMValue ev1 = pop();
        JVMValue ev2 = pop();
        // For a runtime checking interpreter - type checks would go here...
        int and = (int) ev1.value & (int) ev2.value;
        push(entry(and));
    }

    void ior() {
        JVMValue ev1 = pop();