diff options
Diffstat (limited to 'src/cpu/x86/vm/x86.ad')
-rw-r--r-- | src/cpu/x86/vm/x86.ad | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cpu/x86/vm/x86.ad b/src/cpu/x86/vm/x86.ad index 71e26fb20..c3831006b 100644 --- a/src/cpu/x86/vm/x86.ad +++ b/src/cpu/x86/vm/x86.ad @@ -498,10 +498,18 @@ const bool Matcher::match_rule_supported(int opcode) { case Op_PopCountL: if (!UsePopCountInstruction) return false; + break; case Op_MulVI: 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. |