Skip to content

Instantly share code, notes, and snippets.

@rednaxelafx
Last active April 8, 2018 01:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rednaxelafx/6137819 to your computer and use it in GitHub Desktop.
Save rednaxelafx/6137819 to your computer and use it in GitHub Desktop.
Demo of making an intrinsic method that takes pointer argument and returns an oop. This version doesn't work, though. Diff against hotspot-comp, changeset 446cb5d25d03. Discussion: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2013-August/011252.html
exclude Main main
dontinline Main doTest
compileonly Main doTest
compileonly FxIntrinsics *
+PrintAssembly
+PrintCompilation
+PrintInlining
CompileThreshold=10
-TieredCompilation
CICompilerCount=1
$ java -Xbootclasspath/p:. -XX:+PrintInlining Main
OpenJDK 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
CompilerOracle: exclude Main.main
CompilerOracle: dontinline Main.doTest
CompilerOracle: compileonly Main.doTest
CompilerOracle: compileonly FxIntrinsics.*
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
FxIntrinsics.getMethodName(): normal Java version called.
<unknown>
2227 1 Main::FxIntrinsics.getMethodName(): normal Java version called.doTest (4 bytes)
<unknown>
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/sharedRuntime_x86_64.cpp:443
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/private/tmp/tmphs/src/cpu/x86/vm/sharedRuntime_x86_64.cpp:443), pid=47291, tid=20483
# Error: ShouldNotReachHere()
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b99) (build 1.8.0-ea-b99)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b44-internal-fastdebug mixed mode bsd-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /private/tmp/tmphs/hs_err_pid47291.log
#
# Compiler replay data is saved as:
# /private/tmp/tmphs/replay_pid47291.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Current thread is 20483
Dumping core ...
Abort trap: 6
public class FxIntrinsics {
public static String getMethodName() {
System.out.println("FxIntrinsics.getMethodName(): normal Java version called.");
return "<unknown>";
}
}
--- a/src/share/vm/classfile/vmSymbols.hpp Fri Jul 26 12:37:39 2013 -0700
+++ b/src/share/vm/classfile/vmSymbols.hpp Fri Aug 02 14:03:01 2013 +0800
@@ -952,6 +952,11 @@
do_name( getAndSetObject_name, "getAndSetObject") \
do_signature(getAndSetObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \
\
+ /* FX experimental intrinsics */ \
+ do_class(test_FxIntrinsics, "FxIntrinsics") \
+ do_name(getMethodName_name, "getMethodName") \
+ do_intrinsic(_fx_getMethodName, test_FxIntrinsics, getMethodName_name, void_string_signature, F_S) \
+ \
/* prefetch_signature is shared by all prefetch variants */ \
do_signature( prefetch_signature, "(Ljava/lang/Object;J)V") \
\
diff -r d90d1b96b65b src/share/vm/opto/library_call.cpp
--- a/src/share/vm/opto/library_call.cpp Fri Jul 26 12:37:39 2013 -0700
+++ b/src/share/vm/opto/library_call.cpp Fri Aug 02 14:03:01 2013 +0800
@@ -188,6 +188,7 @@
}
Node * load_field_from_object(Node * fromObj, const char * fieldName, const char * fieldTypeString, bool is_exact, bool is_static);
+ bool inline_fx_getMethodName();
Node* make_string_method_node(int opcode, Node* str1_start, Node* cnt1, Node* str2_start, Node* cnt2);
Node* make_string_method_node(int opcode, Node* str1, Node* str2);
bool inline_string_compareTo();
@@ -823,6 +824,9 @@
case vmIntrinsics::_updateByteBufferCRC32:
return inline_updateByteBufferCRC32();
+ case vmIntrinsics::_fx_getMethodName:
+ return inline_fx_getMethodName();
+
default:
// If you get here, it may be that someone has added a new intrinsic
// to the list in vmSymbols.hpp without implementing it here.
@@ -1004,6 +1008,23 @@
}
+//---------------------------inline_fx_getMethodName-------------------------
+bool LibraryCallKit::inline_fx_getMethodName() {
+ JVMState* caller_jvms = jvms();
+ ciMethod* caller_method = caller_jvms->method();
+ Node* method = makecon(TypeMetadataPtr::make(caller_method));
+ Node* bci = makecon(TypeInt::make(caller_jvms->bci()));
+ Node* result = make_runtime_call(RC_NO_LEAF | RC_NO_IO, // flags
+ OptoRuntime::get_method_name_Type(), // function type
+ OptoRuntime::get_method_name_Java(), // function address
+ "get_method_name", // runtime call name
+ TypeInstPtr::BOTTOM, // memory effects
+ method, // 1st argument
+ bci); // 2nd argument
+ push(result);
+ return true;
+}
+
//------------------------------make_string_method_node------------------------
// Helper method for String intrinsic functions. This version is called
// with str1 and str2 pointing to String object nodes.
diff -r d90d1b96b65b src/share/vm/opto/runtime.cpp
--- a/src/share/vm/opto/runtime.cpp Fri Jul 26 12:37:39 2013 -0700
+++ b/src/share/vm/opto/runtime.cpp Fri Aug 02 14:03:01 2013 +0800
@@ -122,6 +122,8 @@
address OptoRuntime::_zap_dead_native_locals_Java = NULL;
# endif
+address OptoRuntime::_get_method_name_Java = NULL;
+
ExceptionBlob* OptoRuntime::_exception_blob;
// This should be called in an assertion at the start of OptoRuntime routines
@@ -169,6 +171,7 @@
gen(env, _zap_dead_native_locals_Java , zap_dead_locals_Type , zap_dead_native_locals_C , 0 , false, true , false );
# endif
+ gen(env, _get_method_name_Java , get_method_name_Type , get_method_name_C , 0 , true , false, false);
}
#undef gen
@@ -356,6 +359,13 @@
JRT_END
+JRT_ENTRY(void, OptoRuntime::get_method_name_C(Method* method, int bci, JavaThread* thread)) {
+ oop name = StringTable::intern(method->name(), THREAD);
+ deoptimize_caller_frame(thread, HAS_PENDING_EXCEPTION);
+ thread->set_vm_result(name);
+}
+JRT_END
+
// Note: multianewarray for one dimension is handled inline by GraphKit::new_array.
// multianewarray for 2 dimensions
@@ -594,6 +604,20 @@
}
# endif
+const TypeFunc* OptoRuntime::get_method_name_Type() {
+ // create input type (domain)
+ const Type** fields = TypeTuple::fields(2);
+ fields[TypeFunc::Parms+0] = TypeMetadataPtr::BOTTOM; // the Method*
+ fields[TypeFunc::Parms+1] = TypeInt::INT; // bci
+ const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+2, fields);
+
+ // create result type (range)
+ fields = TypeTuple::fields(1);
+ fields[TypeFunc::Parms+0] = TypeInstPtr::BOTTOM; // String
+ const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields);
+
+ return TypeFunc::make(domain, range);
+}
//-----------------------------------------------------------------------------
// Monitor Handling
diff -r d90d1b96b65b src/share/vm/opto/runtime.hpp
--- a/src/share/vm/opto/runtime.hpp Fri Jul 26 12:37:39 2013 -0700
+++ b/src/share/vm/opto/runtime.hpp Fri Aug 02 14:03:01 2013 +0800
@@ -134,6 +134,8 @@
static address _zap_dead_native_locals_Java;
# endif
+ static address _get_method_name_Java;
+
//
// Implementation of runtime methods
@@ -160,6 +162,8 @@
static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread);
static void g1_wb_post_C(void* card_addr, JavaThread* thread);
+ static void get_method_name_C(Method* method, int bci, JavaThread* thread);
+
public:
// Slow-path Locking and Unlocking
static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
@@ -226,6 +230,8 @@
static address slow_arraycopy_Java() { return _slow_arraycopy_Java; }
static address register_finalizer_Java() { return _register_finalizer_Java; }
+ static address get_method_name_Java() { return _get_method_name_Java; }
+
# ifdef ENABLE_ZAP_DEAD_LOCALS
static address zap_dead_locals_stub(bool is_native) { return is_native
@@ -273,6 +279,8 @@
static const TypeFunc* flush_windows_Type();
+ static const TypeFunc* get_method_name_Type();
+
// arraycopy routine types
static const TypeFunc* fast_arraycopy_Type(); // bit-blasters
static const TypeFunc* checkcast_arraycopy_Type();
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/private/tmp/tmphs/src/cpu/x86/vm/sharedRuntime_x86_64.cpp:443), pid=47291, tid=20483
# Error: ShouldNotReachHere()
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b99) (build 1.8.0-ea-b99)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b44-internal-fastdebug mixed mode bsd-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x00007fdf4c03e800): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=20483, stack(0x000000010db93000,0x000000010dc93000)]
Stack: [0x000000010db93000,0x000000010dc93000], sp=0x000000010dc8e570, free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x7d096e] VMError::report_and_die()+0x45e
V [libjvm.dylib+0x2e11b5] report_vm_error(char const*, int, char const*, char const*)+0x63
V [libjvm.dylib+0x6e9823] SharedRuntime::java_calling_convention(BasicType const*, VMRegPair*, int, int)+0x1bb
V [libjvm.dylib+0x5c494d] Matcher::match()+0x36f
V [libjvm.dylib+0x28efd4] Compile::Code_Gen()+0x8c
V [libjvm.dylib+0x291076] Compile::Compile(ciEnv*, TypeFunc const* (*)(), unsigned char*, char const*, int, bool, bool, bool)+0x576
V [libjvm.dylib+0x6c672f] OptoRuntime::generate_stub(ciEnv*, TypeFunc const* (*)(), unsigned char*, char const*, int, bool, bool, bool)+0x6b
V [libjvm.dylib+0x6c6b54] OptoRuntime::generate(ciEnv*)+0x3f4
V [libjvm.dylib+0x202ff4] C2Compiler::initialize_runtime()+0x7c
V [libjvm.dylib+0x1177] AbstractCompiler::initialize_runtimes(void (*)(), int volatile*)+0xc7
V [libjvm.dylib+0x202f6d] C2Compiler::initialize()+0x2b
V [libjvm.dylib+0x202d9d] C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x37
V [libjvm.dylib+0x2978c5] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x609
V [libjvm.dylib+0x299ff2] CompileBroker::compiler_thread_loop()+0x3be
V [libjvm.dylib+0x76a42f] JavaThread::thread_main_inner()+0x115
V [libjvm.dylib+0x76c6b4] JavaThread::run()+0x246
V [libjvm.dylib+0x6481f8] _ZL10java_startP6Thread+0xe4
C [libsystem_c.dylib+0x4e8bf] _pthread_start+0x14f
C [libsystem_c.dylib+0x51b75] thread_start+0xd
Current CompileTask:
C2: 2250 1 Main::doTest (4 bytes)
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x00007fdf4c040800 JavaThread "Service Thread" daemon [_thread_blocked, id=20995, stack(0x000000010dc96000,0x000000010dd96000)]
=>0x00007fdf4c03e800 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=20483, stack(0x000000010db93000,0x000000010dc93000)]
0x00007fdf4c026800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=19971, stack(0x000000010da90000,0x000000010db90000)]
0x00007fdf4c816800 JavaThread "Finalizer" daemon [_thread_blocked, id=15875, stack(0x000000010d786000,0x000000010d886000)]
0x00007fdf4c024000 JavaThread "Reference Handler" daemon [_thread_blocked, id=15363, stack(0x000000010d683000,0x000000010d783000)]
0x00007fdf4a840000 JavaThread "main" [_thread_blocked, id=7427, stack(0x0000000105e7e000,0x0000000105f7e000)]
Other Threads:
0x00007fdf4c811800 VMThread [stack: 0x000000010d580000,0x000000010d680000] [id=14851]
0x00007fdf4c000800 WatcherThread [stack: 0x000000010dd99000,0x000000010de99000] [id=21507]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap:
PSYoungGen total 19456K, used 675K [0x00000007eaa80000, 0x00000007ec000000, 0x0000000800000000)
eden space 16896K, 4% used [0x00000007eaa80000,0x00000007eab28ff8,0x00000007ebb00000)
from space 2560K, 0% used [0x00000007ebd80000,0x00000007ebd80000,0x00000007ec000000)
to space 2560K, 0% used [0x00000007ebb00000,0x00000007ebb00000,0x00000007ebd80000)
ParOldGen total 43520K, used 0K [0x00000007c0000000, 0x00000007c2a80000, 0x00000007eaa80000)
object space 43520K, 0% used [0x00000007c0000000,0x00000007c0000000,0x00000007c2a80000)
Metaspace total 4480K, used 2583K, reserved 110592K
data space 4096K, used 2344K, reserved 8192K
class space 384K, used 238K, reserved 102400K
Card table byte_map: [0x000000010987d000,0x0000000109a7e000] byte_map_base: 0x0000000105a7d000
Marking Bits: (ParMarkBitMap*) 0x0000000105b817e0
Begin Bits: [0x0000000109fe0000, 0x000000010afe0000)
End Bits: [0x000000010afe0000, 0x000000010bfe0000)
Polling page: 0x0000000104df5000
CodeCache: size=49152Kb used=1012Kb max_used=1023Kb free=48139Kb
bounds [0x00000001067bd000, 0x0000000106a2d000, 0x00000001097bd000]
total_blobs=166 nmethods=0 adapters=127
compilation: enabled
Compilation events (1 events):
Event: 2.228 Thread 0x00007fdf4c03e800 1 Main::doTest (4 bytes)
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Internal exceptions (2 events):
Event: 0.237 Thread 0x00007fdf4a840000 Threw 0x00000007eaa926e0 at /private/tmp/tmphs/src/share/vm/prims/jni.cpp:3968
Event: 0.237 Thread 0x00007fdf4a840000 Threw 0x00000007eaa92970 at /private/tmp/tmphs/src/share/vm/prims/jni.cpp:3968
Events (10 events):
Event: 0.408 loading class 0x00007fdf4b024d48
Event: 0.410 loading class 0x00007fdf4b024d48 done
Event: 0.410 loading class 0x00007fdf4b00a5f8
Event: 0.411 loading class 0x00007fdf4b00a5f8 done
Event: 0.411 loading class 0x000000010c2ab5f8
Event: 0.412 loading class 0x000000010c2ab5f8 done
Event: 0.413 loading class 0x000000010c260dd8
Event: 0.414 loading class 0x000000010c260dd8 done
Event: 0.414 loading class 0x000000010c254778
Event: 0.415 loading class 0x000000010c254778 done
Dynamic libraries:
0x000000000829d000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x000000000829d000 /System/Library/Frameworks/Security.framework/Versions/A/Security
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x000000000829d000 /usr/lib/libz.1.dylib
0x000000000829d000 /usr/lib/libSystem.B.dylib
0x000000000829d000 /usr/lib/libobjc.A.dylib
0x000000000829d000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x000000000829d000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x000000000829d000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x000000000829d000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x000000000829d000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x000000000829d000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x000000000829d000 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x000000000829d000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x000000000829d000 /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x000000000829d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x000000000829d000 /usr/lib/libauto.dylib
0x000000000829d000 /usr/lib/libicucore.A.dylib
0x000000000829d000 /usr/lib/libxml2.2.dylib
0x000000000829d000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x000000000829d000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x000000000829d000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x000000000829d000 /usr/lib/liblangid.dylib
0x000000000829d000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x000000000829d000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x000000000829d000 /usr/lib/libDiagnosticMessagesClient.dylib
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x000000000829d000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x000000000829d000 /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x000000000829d000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x000000000829d000 /usr/lib/libCRFSuite.dylib
0x000000000829d000 /usr/lib/libc++.1.dylib
0x000000000829d000 /usr/lib/libstdc++.6.dylib
0x000000000829d000 /usr/lib/libc++abi.dylib
0x000000000829d000 /usr/lib/system/libcache.dylib
0x000000000829d000 /usr/lib/system/libcommonCrypto.dylib
0x000000000829d000 /usr/lib/system/libcompiler_rt.dylib
0x000000000829d000 /usr/lib/system/libcopyfile.dylib
0x000000000829d000 /usr/lib/system/libdispatch.dylib
0x000000000829d000 /usr/lib/system/libdnsinfo.dylib
0x000000000829d000 /usr/lib/system/libdyld.dylib
0x000000000829d000 /usr/lib/system/libkeymgr.dylib
0x000000000829d000 /usr/lib/system/liblaunch.dylib
0x000000000829d000 /usr/lib/system/libmacho.dylib
0x000000000829d000 /usr/lib/system/libmathCommon.A.dylib
0x000000000829d000 /usr/lib/system/libquarantine.dylib
0x000000000829d000 /usr/lib/system/libremovefile.dylib
0x000000000829d000 /usr/lib/system/libsystem_blocks.dylib
0x000000000829d000 /usr/lib/system/libsystem_c.dylib
0x000000000829d000 /usr/lib/system/libsystem_dnssd.dylib
0x000000000829d000 /usr/lib/system/libsystem_info.dylib
0x000000000829d000 /usr/lib/system/libsystem_kernel.dylib
0x000000000829d000 /usr/lib/system/libsystem_network.dylib
0x000000000829d000 /usr/lib/system/libsystem_notify.dylib
0x000000000829d000 /usr/lib/system/libsystem_sandbox.dylib
0x000000000829d000 /usr/lib/system/libunc.dylib
0x000000000829d000 /usr/lib/system/libunwind.dylib
0x000000000829d000 /usr/lib/system/libxpc.dylib
0x000000000829d000 /usr/lib/libbsm.0.dylib
0x000000000829d000 /usr/lib/libsqlite3.dylib
0x000000000829d000 /usr/lib/libOpenScriptingUtil.dylib
0x000000000829d000 /usr/lib/libpam.2.dylib
0x000000000829d000 /usr/lib/libxar-nossl.dylib
0x000000000829d000 /usr/lib/libbz2.1.0.dylib
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x000000000829d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x000000000829d000 /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x000000000829d000 /usr/lib/system/libkxld.dylib
0x000000000829d000 /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
0x000000000829d000 /usr/lib/libcrypto.0.9.8.dylib
0x000000000829d000 /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
0x000000000829d000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x000000000829d000 /usr/lib/libxslt.1.dylib
0x000000000829d000 /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x000000000829d000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x000000000829d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
0x000000000829d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x000000000829d000 /usr/lib/libcups.2.dylib
0x000000000829d000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x000000000829d000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x000000000829d000 /usr/lib/libresolv.9.dylib
0x000000000829d000 /usr/lib/libiconv.2.dylib
0x000000000829d000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x000000000829d000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x000000000829d000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x000000000829d000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x000000000829d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x000000000829d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x000000000829d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x000000000829d000 /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x000000000829d000 /System/Library/PrivateFrameworks/FaceCoreLight.framework/Versions/A/FaceCoreLight
0x000000000829d000 /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
0x000000000829d000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x000000000829d000 /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
0x000000000829d000 /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
0x000000000829d000 /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
0x000000000829d000 /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
0x0000000104f00000 /Users/rednaxelafx/sdk/hs_comp/Contents/Home/jre/lib/server/libjvm.dylib
0x0000000104de8000 /Users/rednaxelafx/sdk/hs_comp/Contents/Home/jre/lib/libverify.dylib
0x0000000105f80000 /Users/rednaxelafx/sdk/hs_comp/Contents/Home/jre/lib/libjava.dylib
0x0000000105fb4000 /Users/rednaxelafx/sdk/hs_comp/Contents/Home/jre/lib/libzip.dylib
0x000000010d888000 /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/JavaRuntimeSupport
0x000000010d8a0000 /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/JavaNativeFoundation
0x000000010d8b5000 /System/Library/Frameworks/JavaVM.framework/Versions/A/JavaVM
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x000000010d8c2000 /System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x000000000829d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
VM Arguments:
jvm_flags: +PrintAssembly +PrintCompilation +PrintInlining CompileThreshold=10 -TieredCompilation CICompilerCount=1
jvm_args: -Xbootclasspath/p:. -XX:+PrintInlining
java_command: Main
java_class_path (initial): .
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/Users/rednaxelafx/sdk/hs_comp/Contents/Home
PATH=/Users/rednaxelafx/sdk/hs_comp/Contents/Home/bin:/opt/local/bin:/opt/local/sbin:/Users/rednaxelafx/bin:/Users/rednaxelafx/sdk/groovy-1.8.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
SHELL=/bin/bash
DISPLAY=/tmp/launch-2CzoaD/org.x:0
Signal Handlers:
SIGSEGV: [libjvm.dylib+0x7d12a3], sa_mask[0]=0xfffefeff, sa_flags=0x00000043
SIGBUS: [libjvm.dylib+0x7d12a3], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGFPE: [libjvm.dylib+0x644b57], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGPIPE: [libjvm.dylib+0x644b57], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGXFSZ: [libjvm.dylib+0x644b57], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGILL: [libjvm.dylib+0x644b57], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGUSR1: SIG_DFL, sa_mask[0]=0x63807efb, sa_flags=0x00000000
SIGUSR2: [libjvm.dylib+0x644824], sa_mask[0]=0x00000000, sa_flags=0x00000042
SIGHUP: [libjvm.dylib+0x641e27], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGINT: [libjvm.dylib+0x641e27], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGTERM: [libjvm.dylib+0x641e27], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGQUIT: [libjvm.dylib+0x641e27], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
--------------- S Y S T E M ---------------
OS:Bsduname:Darwin 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
rlimit: STACK 8192k, CORE 0k, NPROC 709, NOFILE 10240, AS infinity
load average:3.44 3.18 2.66
CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, clmul, ht, tsc, tscinvbit
Memory: 4k page, physical 4194304k(1048576k free)
/proc/meminfo:
vm_info: OpenJDK 64-Bit Server VM (25.0-b44-internal-fastdebug) for bsd-amd64 JRE (1.8.0), built on Aug 2 2013 13:53:06 by "rednaxelafx" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
time: Fri Aug 2 13:53:32 2013
elapsed time: 2 seconds
public class Main {
private static String doTest() {
return FxIntrinsics.getMethodName();
}
public static void main(String[] args) throws Exception {
for (int i = 0; i < 100; i++) {
System.out.println(doTest());
Thread.sleep(200);
}
}
}

ShareRuntime::java_calling_convention() doesn't expect Metadata* values, so we can't call a runtime method and pass a Method* to it via Java calling convention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment