On Tue, 18 Apr 2023 17:23:54 GMT, ExE Boss <d...@openjdk.org> wrote: >> `super.hashCode()` is a virtual call. `System.identityHashCode` is the >> static call. I don't understand where `invokespecial` enters the picture >> here. > > `invokespecial` is used to call instance methods in a non‑virtual manner. > > -------------------------------------------------------------------------------- > > Using `super.hashCode()` in `java.lang.Enum` produces the bytecode: > > aload_0; > invokespecial java/lang/Object.hashCode:()I;
I see. It does not matter here, because for performance, we largely only care about the distinction between virtual/static cases in C2 intrinsic for hashcode. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13491#discussion_r1170485705