public void compile(ClassFile cf) {
    if ((code==17) || (code==18)) {
      chi[0].compile(cf);
      cf.code(code-(17 - 0xF4)); // logical_param AND/OR
      chi[1].compile(cf);
      cf.code(code-(17 - 0xF6)); // logical_end AND/OR
    } else {
      chi[0].compile(cf);
      cf.code(0xFA); //   ensure value;
      chi[1].compile(cf);
      cf.code(0xFA); //   ensure value;

      cf.code(ops[code][opsIDX] & 0xFFFFFFFFL); 
      // & is needed to prevent sign extension when converting "int" ops
      // element into "long" argument of code.
      
      cf.noteStk(chi[0].resID,-1);
      cf.noteStk(chi[1].resID,-1);
      
      if (cf.currJump==0) // jumps do not load anything to the stack
        cf.noteStk(-1,resID);
    };
  };