< prev index next >

src/cpu/aarch64/vm/templateInterpreterGenerator_aarch64.cpp

Print this page
rev 12379 : 8162338: AArch64: Intrinsify fused mac operations
Reviewed-by:

*** 202,213 **** __ ldrd(v1, Address(esp)); __ mov(sp, r13); generate_transcendental_entry(kind, 2); break; case Interpreter::java_lang_math_fmaD : case Interpreter::java_lang_math_fmaF : ! return NULL; default: ; } if (entry_point) { __ br(continuation); --- 202,230 ---- __ ldrd(v1, Address(esp)); __ mov(sp, r13); generate_transcendental_entry(kind, 2); break; case Interpreter::java_lang_math_fmaD : + if (UseFMA) { + entry_point = __ pc(); + __ ldrd(v0, Address(esp, 4 * Interpreter::stackElementSize)); + __ ldrd(v1, Address(esp, 2 * Interpreter::stackElementSize)); + __ ldrd(v2, Address(esp)); + __ fmaddd(v0, v0, v1, v2); + __ mov(sp, r13); // Restore caller's SP + } + break; case Interpreter::java_lang_math_fmaF : ! if (UseFMA) { ! entry_point = __ pc(); ! __ ldrs(v0, Address(esp, 2 * Interpreter::stackElementSize)); ! __ ldrs(v1, Address(esp, Interpreter::stackElementSize)); ! __ ldrs(v2, Address(esp)); ! __ fmadds(v0, v0, v1, v2); ! __ mov(sp, r13); // Restore caller's SP ! } ! break; default: ; } if (entry_point) { __ br(continuation);
< prev index next >