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));