1794 return ret;\ |
1794 return ret;\ |
1795 JNI_END |
1795 JNI_END |
1796 |
1796 |
1797 // the runtime type of subword integral basic types is integer |
1797 // the runtime type of subword integral basic types is integer |
1798 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN |
1798 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN |
1799 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1799 , HOTSPOT_JNI_CALLBOOLEANMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1800 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) |
1800 HOTSPOT_JNI_CALLBOOLEANMETHODV_RETURN(_ret_ref)) |
1801 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE |
1801 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE |
1802 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1802 , HOTSPOT_JNI_CALLBYTEMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1803 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) |
1803 HOTSPOT_JNI_CALLBYTEMETHODV_RETURN(_ret_ref)) |
1804 DEFINE_CALLMETHODV(jchar, Char, T_CHAR |
1804 DEFINE_CALLMETHODV(jchar, Char, T_CHAR |
1805 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1805 , HOTSPOT_JNI_CALLCHARMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1806 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) |
1806 HOTSPOT_JNI_CALLCHARMETHODV_RETURN(_ret_ref)) |
1807 DEFINE_CALLMETHODV(jshort, Short, T_SHORT |
1807 DEFINE_CALLMETHODV(jshort, Short, T_SHORT |
1808 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1808 , HOTSPOT_JNI_CALLSHORTMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1809 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) |
1809 HOTSPOT_JNI_CALLSHORTMETHODV_RETURN(_ret_ref)) |
1810 |
1810 |
1811 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT |
1811 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT |
1812 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1812 , HOTSPOT_JNI_CALLOBJECTMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1813 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) |
1813 HOTSPOT_JNI_CALLOBJECTMETHODV_RETURN(_ret_ref)) |
1814 DEFINE_CALLMETHODV(jint, Int, T_INT, |
1814 DEFINE_CALLMETHODV(jint, Int, T_INT, |
1815 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1815 HOTSPOT_JNI_CALLINTMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1816 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) |
1816 HOTSPOT_JNI_CALLINTMETHODV_RETURN(_ret_ref)) |
1817 DEFINE_CALLMETHODV(jlong, Long, T_LONG |
1817 DEFINE_CALLMETHODV(jlong, Long, T_LONG |
1818 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1818 , HOTSPOT_JNI_CALLLONGMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1819 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) |
1819 HOTSPOT_JNI_CALLLONGMETHODV_RETURN(_ret_ref)) |
1820 // Float and double probes don't return value because dtrace doesn't currently support it |
1820 // Float and double probes don't return value because dtrace doesn't currently support it |
1821 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT |
1821 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT |
1822 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1822 , HOTSPOT_JNI_CALLFLOATMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1823 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) |
1823 HOTSPOT_JNI_CALLFLOATMETHODV_RETURN()) |
1824 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE |
1824 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE |
1825 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1825 , HOTSPOT_JNI_CALLDOUBLEMETHODV_ENTRY(env, obj, (uintptr_t)methodID), |
1826 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) |
1826 HOTSPOT_JNI_CALLDOUBLEMETHODV_RETURN()) |
1827 |
1827 |
1828 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \ |
1828 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \ |
1829 , EntryProbe, ReturnProbe) \ |
1829 , EntryProbe, ReturnProbe) \ |
1830 \ |
1830 \ |
1831 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \ |
1831 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \ |
1846 return ret;\ |
1846 return ret;\ |
1847 JNI_END |
1847 JNI_END |
1848 |
1848 |
1849 // the runtime type of subword integral basic types is integer |
1849 // the runtime type of subword integral basic types is integer |
1850 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN |
1850 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN |
1851 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1851 , HOTSPOT_JNI_CALLBOOLEANMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1852 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) |
1852 HOTSPOT_JNI_CALLBOOLEANMETHODA_RETURN(_ret_ref)) |
1853 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE |
1853 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE |
1854 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1854 , HOTSPOT_JNI_CALLBYTEMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1855 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) |
1855 HOTSPOT_JNI_CALLBYTEMETHODA_RETURN(_ret_ref)) |
1856 DEFINE_CALLMETHODA(jchar, Char, T_CHAR |
1856 DEFINE_CALLMETHODA(jchar, Char, T_CHAR |
1857 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1857 , HOTSPOT_JNI_CALLCHARMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1858 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) |
1858 HOTSPOT_JNI_CALLCHARMETHODA_RETURN(_ret_ref)) |
1859 DEFINE_CALLMETHODA(jshort, Short, T_SHORT |
1859 DEFINE_CALLMETHODA(jshort, Short, T_SHORT |
1860 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1860 , HOTSPOT_JNI_CALLSHORTMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1861 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) |
1861 HOTSPOT_JNI_CALLSHORTMETHODA_RETURN(_ret_ref)) |
1862 |
1862 |
1863 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT |
1863 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT |
1864 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1864 , HOTSPOT_JNI_CALLOBJECTMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1865 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) |
1865 HOTSPOT_JNI_CALLOBJECTMETHODA_RETURN(_ret_ref)) |
1866 DEFINE_CALLMETHODA(jint, Int, T_INT, |
1866 DEFINE_CALLMETHODA(jint, Int, T_INT, |
1867 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1867 HOTSPOT_JNI_CALLINTMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1868 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) |
1868 HOTSPOT_JNI_CALLINTMETHODA_RETURN(_ret_ref)) |
1869 DEFINE_CALLMETHODA(jlong, Long, T_LONG |
1869 DEFINE_CALLMETHODA(jlong, Long, T_LONG |
1870 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1870 , HOTSPOT_JNI_CALLLONGMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1871 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) |
1871 HOTSPOT_JNI_CALLLONGMETHODA_RETURN(_ret_ref)) |
1872 // Float and double probes don't return value because dtrace doesn't currently support it |
1872 // Float and double probes don't return value because dtrace doesn't currently support it |
1873 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT |
1873 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT |
1874 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1874 , HOTSPOT_JNI_CALLFLOATMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1875 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) |
1875 HOTSPOT_JNI_CALLFLOATMETHODA_RETURN()) |
1876 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE |
1876 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE |
1877 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), |
1877 , HOTSPOT_JNI_CALLDOUBLEMETHODA_ENTRY(env, obj, (uintptr_t)methodID), |
1878 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) |
1878 HOTSPOT_JNI_CALLDOUBLEMETHODA_RETURN()) |
1879 |
1879 |
1880 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN()); |
1880 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN()); |
1881 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN()); |
1881 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN()); |
1882 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN()); |
1882 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN()); |
1883 |
1883 |
3135 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ |
3135 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ |
3136 ReturnProbe;\ |
3136 ReturnProbe;\ |
3137 JNI_END |
3137 JNI_END |
3138 |
3138 |
3139 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z |
3139 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z |
3140 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), |
3140 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), |
3141 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) |
3141 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) |
3142 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b |
3142 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b |
3143 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
3143 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
3144 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) |
3144 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) |
3145 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c |
3145 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c |