Mercurial > hg > graal-jvmci-8
comparison src/share/vm/prims/jni.cpp @ 14179:dbcb1dd0785b
8029726: On OS X some dtrace probe names are mismatched with Solaris
8029727: On OS X dtrace probes Call<type>MethodA/Call<type>MethodV are not fired.
8029728: On OS X dtrace probes SetStaticBooleanField are not fired
Reviewed-by: kamg, dsamersoff
author | sla |
---|---|
date | Wed, 18 Dec 2013 08:39:06 +0100 |
parents | 1d1ea10fe09f |
children | a3ba776d6ab6 44315152d434 |
comparison
equal
deleted
inserted
replaced
14178:0f2de9d724a9 | 14179:dbcb1dd0785b |
---|---|
1802 return ret;\ | 1802 return ret;\ |
1803 JNI_END | 1803 JNI_END |
1804 | 1804 |
1805 // the runtime type of subword integral basic types is integer | 1805 // the runtime type of subword integral basic types is integer |
1806 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN | 1806 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN |
1807 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1807 , HOTSPOT_JNI_CALLBOOLEANMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1808 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) | 1808 HOTSPOT_JNI_CALLBOOLEANMETHODV_RETURN(_ret_ref)) |
1809 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE | 1809 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE |
1810 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1810 , HOTSPOT_JNI_CALLBYTEMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1811 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) | 1811 HOTSPOT_JNI_CALLBYTEMETHODV_RETURN(_ret_ref)) |
1812 DEFINE_CALLMETHODV(jchar, Char, T_CHAR | 1812 DEFINE_CALLMETHODV(jchar, Char, T_CHAR |
1813 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1813 , HOTSPOT_JNI_CALLCHARMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1814 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) | 1814 HOTSPOT_JNI_CALLCHARMETHODV_RETURN(_ret_ref)) |
1815 DEFINE_CALLMETHODV(jshort, Short, T_SHORT | 1815 DEFINE_CALLMETHODV(jshort, Short, T_SHORT |
1816 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1816 , HOTSPOT_JNI_CALLSHORTMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1817 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) | 1817 HOTSPOT_JNI_CALLSHORTMETHODV_RETURN(_ret_ref)) |
1818 | 1818 |
1819 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT | 1819 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT |
1820 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1820 , HOTSPOT_JNI_CALLOBJECTMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1821 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) | 1821 HOTSPOT_JNI_CALLOBJECTMETHODV_RETURN(_ret_ref)) |
1822 DEFINE_CALLMETHODV(jint, Int, T_INT, | 1822 DEFINE_CALLMETHODV(jint, Int, T_INT, |
1823 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1823 HOTSPOT_JNI_CALLINTMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1824 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) | 1824 HOTSPOT_JNI_CALLINTMETHODV_RETURN(_ret_ref)) |
1825 DEFINE_CALLMETHODV(jlong, Long, T_LONG | 1825 DEFINE_CALLMETHODV(jlong, Long, T_LONG |
1826 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1826 , HOTSPOT_JNI_CALLLONGMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1827 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) | 1827 HOTSPOT_JNI_CALLLONGMETHODV_RETURN(_ret_ref)) |
1828 // Float and double probes don't return value because dtrace doesn't currently support it | 1828 // Float and double probes don't return value because dtrace doesn't currently support it |
1829 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT | 1829 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT |
1830 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1830 , HOTSPOT_JNI_CALLFLOATMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1831 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) | 1831 HOTSPOT_JNI_CALLFLOATMETHODV_RETURN()) |
1832 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE | 1832 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE |
1833 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1833 , HOTSPOT_JNI_CALLDOUBLEMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1834 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) | 1834 HOTSPOT_JNI_CALLDOUBLEMETHODV_RETURN()) |
1835 | 1835 |
1836 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \ | 1836 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \ |
1837 , EntryProbe, ReturnProbe) \ | 1837 , EntryProbe, ReturnProbe) \ |
1838 \ | 1838 \ |
1839 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \ | 1839 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \ |
1854 return ret;\ | 1854 return ret;\ |
1855 JNI_END | 1855 JNI_END |
1856 | 1856 |
1857 // the runtime type of subword integral basic types is integer | 1857 // the runtime type of subword integral basic types is integer |
1858 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN | 1858 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN |
1859 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1859 , HOTSPOT_JNI_CALLBOOLEANMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1860 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) | 1860 HOTSPOT_JNI_CALLBOOLEANMETHODA_RETURN(_ret_ref)) |
1861 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE | 1861 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE |
1862 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1862 , HOTSPOT_JNI_CALLBYTEMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1863 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) | 1863 HOTSPOT_JNI_CALLBYTEMETHODA_RETURN(_ret_ref)) |
1864 DEFINE_CALLMETHODA(jchar, Char, T_CHAR | 1864 DEFINE_CALLMETHODA(jchar, Char, T_CHAR |
1865 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1865 , HOTSPOT_JNI_CALLCHARMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1866 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) | 1866 HOTSPOT_JNI_CALLCHARMETHODA_RETURN(_ret_ref)) |
1867 DEFINE_CALLMETHODA(jshort, Short, T_SHORT | 1867 DEFINE_CALLMETHODA(jshort, Short, T_SHORT |
1868 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1868 , HOTSPOT_JNI_CALLSHORTMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1869 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) | 1869 HOTSPOT_JNI_CALLSHORTMETHODA_RETURN(_ret_ref)) |
1870 | 1870 |
1871 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT | 1871 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT |
1872 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1872 , HOTSPOT_JNI_CALLOBJECTMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1873 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) | 1873 HOTSPOT_JNI_CALLOBJECTMETHODA_RETURN(_ret_ref)) |
1874 DEFINE_CALLMETHODA(jint, Int, T_INT, | 1874 DEFINE_CALLMETHODA(jint, Int, T_INT, |
1875 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1875 HOTSPOT_JNI_CALLINTMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1876 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) | 1876 HOTSPOT_JNI_CALLINTMETHODA_RETURN(_ret_ref)) |
1877 DEFINE_CALLMETHODA(jlong, Long, T_LONG | 1877 DEFINE_CALLMETHODA(jlong, Long, T_LONG |
1878 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1878 , HOTSPOT_JNI_CALLLONGMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1879 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) | 1879 HOTSPOT_JNI_CALLLONGMETHODA_RETURN(_ret_ref)) |
1880 // Float and double probes don't return value because dtrace doesn't currently support it | 1880 // Float and double probes don't return value because dtrace doesn't currently support it |
1881 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT | 1881 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT |
1882 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1882 , HOTSPOT_JNI_CALLFLOATMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1883 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) | 1883 HOTSPOT_JNI_CALLFLOATMETHODA_RETURN()) |
1884 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE | 1884 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE |
1885 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), | 1885 , HOTSPOT_JNI_CALLDOUBLEMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1886 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) | 1886 HOTSPOT_JNI_CALLDOUBLEMETHODA_RETURN()) |
1887 | 1887 |
1888 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN()); | 1888 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN()); |
1889 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN()); | 1889 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN()); |
1890 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN()); | 1890 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN()); |
1891 | 1891 |
3143 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ | 3143 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ |
3144 ReturnProbe;\ | 3144 ReturnProbe;\ |
3145 JNI_END | 3145 JNI_END |
3146 | 3146 |
3147 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z | 3147 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z |
3148 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), | 3148 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), |
3149 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) | 3149 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) |
3150 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b | 3150 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b |
3151 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), | 3151 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
3152 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) | 3152 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) |
3153 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c | 3153 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c |