On Windows with VS, the first argument is passed in RCX instead of RDI (Linux/gcc). There is the VS 2015 document: https://msdn.microsoft.com/en-us/library/9z1stfyw.aspx Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/windows_c_call/webrev.00/ Thanks, -Zhengyu