MCPcopy Index your code
hub / github.com/clojure/clojure / execute

Method execute

src/jvm/clojure/asm/Frame.java:672–1100  ·  view source on GitHub ↗

Simulates the action of the given instruction on the output stack frame. @param opcode the opcode of the instruction. @param arg the numeric operand of the instruction, if any. @param argSymbol the Symbol operand of the instruction, if any. @param symbolTable the type table to use to lookup and sto

(
      final int opcode, final int arg, final Symbol argSymbol, final SymbolTable symbolTable)

Source from the content-addressed store, hash-verified

670 * @param symbolTable the type table to use to lookup and store type {@link Symbol}.
671 */
672 void execute(
673 final int opcode, final int arg, final Symbol argSymbol, final SymbolTable symbolTable) {
674 // Abstract types popped from the stack or read from local variables.
675 int abstractType1;
676 int abstractType2;
677 int abstractType3;
678 int abstractType4;
679 switch (opcode) {
680 case Opcodes.NOP:
681 case Opcodes.INEG:
682 case Opcodes.LNEG:
683 case Opcodes.FNEG:
684 case Opcodes.DNEG:
685 case Opcodes.I2B:
686 case Opcodes.I2C:
687 case Opcodes.I2S:
688 case Opcodes.GOTO:
689 case Opcodes.RETURN:
690 break;
691 case Opcodes.ACONST_NULL:
692 push(NULL);
693 break;
694 case Opcodes.ICONST_M1:
695 case Opcodes.ICONST_0:
696 case Opcodes.ICONST_1:
697 case Opcodes.ICONST_2:
698 case Opcodes.ICONST_3:
699 case Opcodes.ICONST_4:
700 case Opcodes.ICONST_5:
701 case Opcodes.BIPUSH:
702 case Opcodes.SIPUSH:
703 case Opcodes.ILOAD:
704 push(INTEGER);
705 break;
706 case Opcodes.LCONST_0:
707 case Opcodes.LCONST_1:
708 case Opcodes.LLOAD:
709 push(LONG);
710 push(TOP);
711 break;
712 case Opcodes.FCONST_0:
713 case Opcodes.FCONST_1:
714 case Opcodes.FCONST_2:
715 case Opcodes.FLOAD:
716 push(FLOAT);
717 break;
718 case Opcodes.DCONST_0:
719 case Opcodes.DCONST_1:
720 case Opcodes.DLOAD:
721 push(DOUBLE);
722 push(TOP);
723 break;
724 case Opcodes.LDC:
725 switch (argSymbol.tag) {
726 case Symbol.CONSTANT_INTEGER_TAG:
727 push(INTEGER);
728 break;
729 case Symbol.CONSTANT_LONG_TAG:

Callers 12

visitInsnMethod · 0.45
visitIntInsnMethod · 0.45
visitVarInsnMethod · 0.45
visitTypeInsnMethod · 0.45
visitFieldInsnMethod · 0.45
visitMethodInsnMethod · 0.45
visitJumpInsnMethod · 0.45
visitLdcInsnMethod · 0.45
visitIincInsnMethod · 0.45
visitSwitchInsnMethod · 0.45

Calls 7

pushMethod · 0.95
getLocalMethod · 0.95
popMethod · 0.95
setLocalMethod · 0.95
addInitializedTypeMethod · 0.95
addTypeMethod · 0.80
addUninitializedTypeMethod · 0.80

Tested by

no test coverage detected