--- old/src/cpu/x86/vm/stubGenerator_x86_32.cpp 2012-04-02 10:43:21.233388072 +0200 +++ new/src/cpu/x86/vm/stubGenerator_x86_32.cpp 2012-04-02 10:43:21.028451143 +0200 @@ -2136,11 +2136,23 @@ __ trigfunc('t'); __ ret(0); } + { + StubCodeMark mark(this, "StubRoutines", "exp"); + StubRoutines::_intrinsic_exp = (double (*)(double)) __ pc(); - // The intrinsic version of these seem to return the same value as - // the strict version. - StubRoutines::_intrinsic_exp = SharedRuntime::dexp; - StubRoutines::_intrinsic_pow = SharedRuntime::dpow; + __ fld_d(Address(rsp, 4)); + __ pow_or_exp(true, 0); + __ ret(0); + } + { + StubCodeMark mark(this, "StubRoutines", "pow"); + StubRoutines::_intrinsic_pow = (double (*)(double,double)) __ pc(); + + __ fld_d(Address(rsp, 12)); + __ fld_d(Address(rsp, 4)); + __ pow_or_exp(false, 0); + __ ret(0); + } } public: