Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/vmSymbols.cpp @ 1138:dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Tue, 05 Jan 2010 15:21:25 +0100 |
parents | aa62b9388fce |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1137:97125851f396 | 1138:dd57230ba8fe |
---|---|
297 } | 297 } |
298 vmIntrinsics::ID vmIntrinsics::for_unboxing(BasicType type) { | 298 vmIntrinsics::ID vmIntrinsics::for_unboxing(BasicType type) { |
299 return wrapper_intrinsic(type, true); | 299 return wrapper_intrinsic(type, true); |
300 } | 300 } |
301 | 301 |
302 vmIntrinsics::ID vmIntrinsics::for_raw_conversion(BasicType src, BasicType dest) { | |
303 #define SRC_DEST(s,d) (((int)(s) << 4) + (int)(d)) | |
304 switch (SRC_DEST(src, dest)) { | |
305 case SRC_DEST(T_INT, T_FLOAT): return vmIntrinsics::_intBitsToFloat; | |
306 case SRC_DEST(T_FLOAT, T_INT): return vmIntrinsics::_floatToRawIntBits; | |
307 | |
308 case SRC_DEST(T_LONG, T_DOUBLE): return vmIntrinsics::_longBitsToDouble; | |
309 case SRC_DEST(T_DOUBLE, T_LONG): return vmIntrinsics::_doubleToRawLongBits; | |
310 } | |
311 #undef SRC_DEST | |
312 | |
313 return vmIntrinsics::_none; | |
314 } | |
315 | |
302 methodOop vmIntrinsics::method_for(vmIntrinsics::ID id) { | 316 methodOop vmIntrinsics::method_for(vmIntrinsics::ID id) { |
303 if (id == _none) return NULL; | 317 if (id == _none) return NULL; |
304 symbolOop cname = vmSymbols::symbol_at(class_for(id)); | 318 symbolOop cname = vmSymbols::symbol_at(class_for(id)); |
305 symbolOop mname = vmSymbols::symbol_at(name_for(id)); | 319 symbolOop mname = vmSymbols::symbol_at(name_for(id)); |
306 symbolOop msig = vmSymbols::symbol_at(signature_for(id)); | 320 symbolOop msig = vmSymbols::symbol_at(signature_for(id)); |