src/share/vm/c1/c1_LIRGenerator.cpp

Print this page
rev 3227 : 7133857: exp() and pow() should use the x87 ISA on x86
Summary: use x87 instructions to implement exp() and pow() in interpreter/c1/c2.
Reviewed-by:


2903   case vmIntrinsics::_nanoTime: {
2904     assert(x->number_of_arguments() == 0, "wrong type");
2905     LIR_Opr reg = result_register_for(x->type());
2906     __ call_runtime_leaf(CAST_FROM_FN_PTR(address, os::javaTimeNanos), getThreadTemp(),
2907                          reg, new LIR_OprList());
2908     LIR_Opr result = rlock_result(x);
2909     __ move(reg, result);
2910     break;
2911   }
2912 
2913   case vmIntrinsics::_Object_init:    do_RegisterFinalizer(x); break;
2914   case vmIntrinsics::_getClass:       do_getClass(x);      break;
2915   case vmIntrinsics::_currentThread:  do_currentThread(x); break;
2916 
2917   case vmIntrinsics::_dlog:           // fall through
2918   case vmIntrinsics::_dlog10:         // fall through
2919   case vmIntrinsics::_dabs:           // fall through
2920   case vmIntrinsics::_dsqrt:          // fall through
2921   case vmIntrinsics::_dtan:           // fall through
2922   case vmIntrinsics::_dsin :          // fall through
2923   case vmIntrinsics::_dcos :          do_MathIntrinsic(x); break;


2924   case vmIntrinsics::_arraycopy:      do_ArrayCopy(x);     break;
2925 
2926   // java.nio.Buffer.checkIndex
2927   case vmIntrinsics::_checkIndex:     do_NIOCheckIndex(x); break;
2928 
2929   case vmIntrinsics::_compareAndSwapObject:
2930     do_CompareAndSwap(x, objectType);
2931     break;
2932   case vmIntrinsics::_compareAndSwapInt:
2933     do_CompareAndSwap(x, intType);
2934     break;
2935   case vmIntrinsics::_compareAndSwapLong:
2936     do_CompareAndSwap(x, longType);
2937     break;
2938 
2939     // sun.misc.AtomicLongCSImpl.attemptUpdate
2940   case vmIntrinsics::_attemptUpdate:
2941     do_AttemptUpdate(x);
2942     break;
2943 




2903   case vmIntrinsics::_nanoTime: {
2904     assert(x->number_of_arguments() == 0, "wrong type");
2905     LIR_Opr reg = result_register_for(x->type());
2906     __ call_runtime_leaf(CAST_FROM_FN_PTR(address, os::javaTimeNanos), getThreadTemp(),
2907                          reg, new LIR_OprList());
2908     LIR_Opr result = rlock_result(x);
2909     __ move(reg, result);
2910     break;
2911   }
2912 
2913   case vmIntrinsics::_Object_init:    do_RegisterFinalizer(x); break;
2914   case vmIntrinsics::_getClass:       do_getClass(x);      break;
2915   case vmIntrinsics::_currentThread:  do_currentThread(x); break;
2916 
2917   case vmIntrinsics::_dlog:           // fall through
2918   case vmIntrinsics::_dlog10:         // fall through
2919   case vmIntrinsics::_dabs:           // fall through
2920   case vmIntrinsics::_dsqrt:          // fall through
2921   case vmIntrinsics::_dtan:           // fall through
2922   case vmIntrinsics::_dsin :          // fall through
2923   case vmIntrinsics::_dcos :          // fall through
2924   case vmIntrinsics::_dexp :          // fall through
2925   case vmIntrinsics::_dpow :          do_MathIntrinsic(x); break;
2926   case vmIntrinsics::_arraycopy:      do_ArrayCopy(x);     break;
2927 
2928   // java.nio.Buffer.checkIndex
2929   case vmIntrinsics::_checkIndex:     do_NIOCheckIndex(x); break;
2930 
2931   case vmIntrinsics::_compareAndSwapObject:
2932     do_CompareAndSwap(x, objectType);
2933     break;
2934   case vmIntrinsics::_compareAndSwapInt:
2935     do_CompareAndSwap(x, intType);
2936     break;
2937   case vmIntrinsics::_compareAndSwapLong:
2938     do_CompareAndSwap(x, longType);
2939     break;
2940 
2941     // sun.misc.AtomicLongCSImpl.attemptUpdate
2942   case vmIntrinsics::_attemptUpdate:
2943     do_AttemptUpdate(x);
2944     break;
2945