Mercurial > hg > graal-compiler
comparison src/share/vm/opto/doCall.cpp @ 6894:a3ecd773a7b9
7184394: add intrinsics to use AES instructions
Summary: Use new x86 AES instructions for AESCrypt.
Reviewed-by: twisti, kvn, roland
Contributed-by: tom.deneau@amd.com
author | kvn |
---|---|
date | Wed, 24 Oct 2012 14:33:22 -0700 |
parents | e626685e9f6c |
children | bb33c6fdcf0d |
comparison
equal
deleted
inserted
replaced
6893:b2c669fd8114 | 6894:a3ecd773a7b9 |
---|---|
105 // then we return it as the inlined version of the call. | 105 // then we return it as the inlined version of the call. |
106 // We do this before the strict f.p. check below because the | 106 // We do this before the strict f.p. check below because the |
107 // intrinsics handle strict f.p. correctly. | 107 // intrinsics handle strict f.p. correctly. |
108 if (allow_inline && allow_intrinsics) { | 108 if (allow_inline && allow_intrinsics) { |
109 CallGenerator* cg = find_intrinsic(callee, call_is_virtual); | 109 CallGenerator* cg = find_intrinsic(callee, call_is_virtual); |
110 if (cg != NULL) return cg; | 110 if (cg != NULL) { |
111 if (cg->is_predicted()) { | |
112 // Code without intrinsic but, hopefully, inlined. | |
113 CallGenerator* inline_cg = this->call_generator(callee, | |
114 vtable_index, call_is_virtual, jvms, allow_inline, prof_factor, false); | |
115 if (inline_cg != NULL) { | |
116 cg = CallGenerator::for_predicted_intrinsic(cg, inline_cg); | |
117 } | |
118 } | |
119 return cg; | |
120 } | |
111 } | 121 } |
112 | 122 |
113 // Do method handle calls. | 123 // Do method handle calls. |
114 // NOTE: This must happen before normal inlining logic below since | 124 // NOTE: This must happen before normal inlining logic below since |
115 // MethodHandle.invoke* are native methods which obviously don't | 125 // MethodHandle.invoke* are native methods which obviously don't |