diff options
author | roland <none@none> | 2012-09-20 16:49:17 +0200 |
---|---|---|
committer | roland <none@none> | 2012-09-20 16:49:17 +0200 |
commit | 3a09a13202669f38c03ba782eaf81ca7ce63abb0 (patch) | |
tree | 9d74ad3f9125d4b6dd2eea658297c314e9dc4b63 /src/cpu/x86/vm/x86.ad | |
parent | 9c4aa71c8a7562754876d0ec6bdfaa9f6e54e0c9 (diff) |
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose
Diffstat (limited to 'src/cpu/x86/vm/x86.ad')
-rw-r--r-- | src/cpu/x86/vm/x86.ad | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cpu/x86/vm/x86.ad b/src/cpu/x86/vm/x86.ad index 9a057a47f..c3831006b 100644 --- a/src/cpu/x86/vm/x86.ad +++ b/src/cpu/x86/vm/x86.ad @@ -503,6 +503,13 @@ const bool Matcher::match_rule_supported(int opcode) { if ((UseSSE < 4) && (UseAVX < 1)) // only with SSE4_1 or AVX return false; break; + case Op_CompareAndSwapL: +#ifdef _LP64 + case Op_CompareAndSwapP: +#endif + if (!VM_Version::supports_cx8()) + return false; + break; } return true; // Per default match rules are supported. |