Mercurial > hg > truffle
diff src/cpu/x86/vm/interpreter_x86_32.cpp @ 6084:6759698e3140
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: kvn, never, twisti
author | roland |
---|---|
date | Tue, 15 May 2012 10:10:23 +0200 |
parents | 3d2ab563047a |
children | 1d7922586cf6 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/interpreter_x86_32.cpp Mon May 14 09:36:00 2012 -0700 +++ b/src/cpu/x86/vm/interpreter_x86_32.cpp Tue May 15 10:10:23 2012 +0200 @@ -181,6 +181,19 @@ __ push_fTOS(); __ pop_fTOS(); break; + case Interpreter::java_lang_math_pow: + __ fld_d(Address(rsp, 3*wordSize)); // second argument + __ pow_with_fallback(0); + // Store to stack to convert 80bit precision back to 64bits + __ push_fTOS(); + __ pop_fTOS(); + break; + case Interpreter::java_lang_math_exp: + __ exp_with_fallback(0); + // Store to stack to convert 80bit precision back to 64bits + __ push_fTOS(); + __ pop_fTOS(); + break; default : ShouldNotReachHere(); }