title: What's the calling convention for the Java code in Linux platform?
body: <p>We know the calling convention that "first six integer or pointer arguments are passed in registers RDI, RSI, RDX, RCX (R10 in the Linux kernel interface[17]:124), R8, and R9" for the c/c++ code in the Linux platform based on the following article.
  <a href="https://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions" rel="noreferrer">https://en.wikipedia.org/wiki/X86_calling_conventions#x86-64_calling_conventions</a></p>
  
  <p>However what's the calling convention for the Java code in Linux platform (suppose the JVM is hotspot)?  The following is example, what's registers store the four parameters?</p>
  
  <pre><code>protected void caller( ) {
  callee(1,"123", 123,1)
  }
  
  protected void callee(int a,String b, Integer c,Object d) {
  
  }
  </code></pre>