Print this page
rev 4122 : 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose

Split Split Close
Expand all
Collapse all
          --- old/src/share/vm/interpreter/bytecodes.hpp
          +++ new/src/share/vm/interpreter/bytecodes.hpp
↓ open down ↓ 415 lines elided ↑ open up ↑
 416  416    static bool        is_java_code   (Code code)    { return 0 <= code && code < number_of_java_codes; }
 417  417  
 418  418    static bool        is_aload       (Code code)    { return (code == _aload  || code == _aload_0  || code == _aload_1
 419  419                                                                               || code == _aload_2  || code == _aload_3); }
 420  420    static bool        is_astore      (Code code)    { return (code == _astore || code == _astore_0 || code == _astore_1
 421  421                                                                               || code == _astore_2 || code == _astore_3); }
 422  422  
 423  423    static bool        is_zero_const  (Code code)    { return (code == _aconst_null || code == _iconst_0
 424  424                                                             || code == _fconst_0 || code == _dconst_0); }
 425  425    static bool        is_invoke      (Code code)    { return (_invokevirtual <= code && code <= _invokedynamic); }
 426      -
      426 +  static bool        has_receiver   (Code code)    { assert(is_invoke(code), "");  return code == _invokevirtual ||
      427 +                                                                                          code == _invokespecial ||
      428 +                                                                                          code == _invokeinterface; }
 427  429    static bool        has_optional_appendix(Code code) { return code == _invokedynamic || code == _invokehandle; }
 428  430  
 429  431    static int         compute_flags  (const char* format, int more_flags = 0);  // compute the flags
 430  432    static int         flags          (int code, bool is_wide) {
 431  433      assert(code == (u_char)code, "must be a byte");
 432  434      return _flags[code + (is_wide ? (1<<BitsPerByte) : 0)];
 433  435    }
 434  436    static int         format_bits    (Code code, bool is_wide) { return flags(code, is_wide) & _all_fmt_bits; }
 435  437    static bool        has_all_flags  (Code code, int test_flags, bool is_wide) {
 436  438      return (flags(code, is_wide) & test_flags) == test_flags;
 437  439    }
 438  440  
 439  441    // Initialization
 440  442    static void        initialize     ();
 441  443  };
 442  444  
 443  445  #endif // SHARE_VM_INTERPRETER_BYTECODES_HPP