242 break; |
242 break; |
243 case vmIntrinsics::_reverseBytes_l: |
243 case vmIntrinsics::_reverseBytes_l: |
244 if (!Matcher::match_rule_supported(Op_ReverseBytesL)) return false; |
244 if (!Matcher::match_rule_supported(Op_ReverseBytesL)) return false; |
245 break; |
245 break; |
246 |
246 |
247 /* CompareAndSwap, Object: */ |
247 /* CompareAndSet, Object: */ |
248 case vmIntrinsics::_compareAndSwapObject: |
248 case vmIntrinsics::_compareAndSetObject: |
249 #ifdef _LP64 |
249 #ifdef _LP64 |
250 if ( UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndSwapN)) return false; |
250 if ( UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndSwapN)) return false; |
251 if (!UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndSwapP)) return false; |
251 if (!UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndSwapP)) return false; |
252 #else |
252 #else |
253 if (!Matcher::match_rule_supported(Op_CompareAndSwapP)) return false; |
253 if (!Matcher::match_rule_supported(Op_CompareAndSwapP)) return false; |
254 #endif |
254 #endif |
255 break; |
255 break; |
256 case vmIntrinsics::_weakCompareAndSwapObject: |
256 case vmIntrinsics::_weakCompareAndSetObjectPlain: |
257 case vmIntrinsics::_weakCompareAndSwapObjectAcquire: |
257 case vmIntrinsics::_weakCompareAndSetObjectAcquire: |
258 case vmIntrinsics::_weakCompareAndSwapObjectRelease: |
258 case vmIntrinsics::_weakCompareAndSetObjectRelease: |
259 case vmIntrinsics::_weakCompareAndSwapObjectVolatile: |
259 case vmIntrinsics::_weakCompareAndSetObject: |
260 #ifdef _LP64 |
260 #ifdef _LP64 |
261 if ( UseCompressedOops && !Matcher::match_rule_supported(Op_WeakCompareAndSwapN)) return false; |
261 if ( UseCompressedOops && !Matcher::match_rule_supported(Op_WeakCompareAndSwapN)) return false; |
262 if (!UseCompressedOops && !Matcher::match_rule_supported(Op_WeakCompareAndSwapP)) return false; |
262 if (!UseCompressedOops && !Matcher::match_rule_supported(Op_WeakCompareAndSwapP)) return false; |
263 #else |
263 #else |
264 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapP)) return false; |
264 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapP)) return false; |
265 #endif |
265 #endif |
266 break; |
266 break; |
267 /* CompareAndSwap, Long: */ |
267 /* CompareAndSet, Long: */ |
268 case vmIntrinsics::_compareAndSwapLong: |
268 case vmIntrinsics::_compareAndSetLong: |
269 if (!Matcher::match_rule_supported(Op_CompareAndSwapL)) return false; |
269 if (!Matcher::match_rule_supported(Op_CompareAndSwapL)) return false; |
270 break; |
270 break; |
271 case vmIntrinsics::_weakCompareAndSwapLong: |
271 case vmIntrinsics::_weakCompareAndSetLongPlain: |
272 case vmIntrinsics::_weakCompareAndSwapLongAcquire: |
272 case vmIntrinsics::_weakCompareAndSetLongAcquire: |
273 case vmIntrinsics::_weakCompareAndSwapLongRelease: |
273 case vmIntrinsics::_weakCompareAndSetLongRelease: |
274 case vmIntrinsics::_weakCompareAndSwapLongVolatile: |
274 case vmIntrinsics::_weakCompareAndSetLong: |
275 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapL)) return false; |
275 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapL)) return false; |
276 break; |
276 break; |
277 |
277 |
278 /* CompareAndSwap, Int: */ |
278 /* CompareAndSet, Int: */ |
279 case vmIntrinsics::_compareAndSwapInt: |
279 case vmIntrinsics::_compareAndSetInt: |
280 if (!Matcher::match_rule_supported(Op_CompareAndSwapI)) return false; |
280 if (!Matcher::match_rule_supported(Op_CompareAndSwapI)) return false; |
281 break; |
281 break; |
282 case vmIntrinsics::_weakCompareAndSwapInt: |
282 case vmIntrinsics::_weakCompareAndSetIntPlain: |
283 case vmIntrinsics::_weakCompareAndSwapIntAcquire: |
283 case vmIntrinsics::_weakCompareAndSetIntAcquire: |
284 case vmIntrinsics::_weakCompareAndSwapIntRelease: |
284 case vmIntrinsics::_weakCompareAndSetIntRelease: |
285 case vmIntrinsics::_weakCompareAndSwapIntVolatile: |
285 case vmIntrinsics::_weakCompareAndSetInt: |
286 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapL)) return false; |
286 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapL)) return false; |
287 break; |
287 break; |
288 |
288 |
289 /* CompareAndSwap, Byte: */ |
289 /* CompareAndSet, Byte: */ |
290 case vmIntrinsics::_compareAndSwapByte: |
290 case vmIntrinsics::_compareAndSetByte: |
291 if (!Matcher::match_rule_supported(Op_CompareAndSwapB)) return false; |
291 if (!Matcher::match_rule_supported(Op_CompareAndSwapB)) return false; |
292 break; |
292 break; |
293 case vmIntrinsics::_weakCompareAndSwapByte: |
293 case vmIntrinsics::_weakCompareAndSetBytePlain: |
294 case vmIntrinsics::_weakCompareAndSwapByteAcquire: |
294 case vmIntrinsics::_weakCompareAndSetByteAcquire: |
295 case vmIntrinsics::_weakCompareAndSwapByteRelease: |
295 case vmIntrinsics::_weakCompareAndSetByteRelease: |
296 case vmIntrinsics::_weakCompareAndSwapByteVolatile: |
296 case vmIntrinsics::_weakCompareAndSetByte: |
297 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapB)) return false; |
297 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapB)) return false; |
298 break; |
298 break; |
299 |
299 |
300 /* CompareAndSwap, Short: */ |
300 /* CompareAndSet, Short: */ |
301 case vmIntrinsics::_compareAndSwapShort: |
301 case vmIntrinsics::_compareAndSetShort: |
302 if (!Matcher::match_rule_supported(Op_CompareAndSwapS)) return false; |
302 if (!Matcher::match_rule_supported(Op_CompareAndSwapS)) return false; |
303 break; |
303 break; |
304 case vmIntrinsics::_weakCompareAndSwapShort: |
304 case vmIntrinsics::_weakCompareAndSetShortPlain: |
305 case vmIntrinsics::_weakCompareAndSwapShortAcquire: |
305 case vmIntrinsics::_weakCompareAndSetShortAcquire: |
306 case vmIntrinsics::_weakCompareAndSwapShortRelease: |
306 case vmIntrinsics::_weakCompareAndSetShortRelease: |
307 case vmIntrinsics::_weakCompareAndSwapShortVolatile: |
307 case vmIntrinsics::_weakCompareAndSetShort: |
308 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapS)) return false; |
308 if (!Matcher::match_rule_supported(Op_WeakCompareAndSwapS)) return false; |
309 break; |
309 break; |
310 |
310 |
311 /* CompareAndExchange, Object: */ |
311 /* CompareAndExchange, Object: */ |
312 case vmIntrinsics::_compareAndExchangeObjectVolatile: |
312 case vmIntrinsics::_compareAndExchangeObject: |
313 case vmIntrinsics::_compareAndExchangeObjectAcquire: |
313 case vmIntrinsics::_compareAndExchangeObjectAcquire: |
314 case vmIntrinsics::_compareAndExchangeObjectRelease: |
314 case vmIntrinsics::_compareAndExchangeObjectRelease: |
315 #ifdef _LP64 |
315 #ifdef _LP64 |
316 if ( UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndExchangeN)) return false; |
316 if ( UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndExchangeN)) return false; |
317 if (!UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndExchangeP)) return false; |
317 if (!UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndExchangeP)) return false; |
319 if (!Matcher::match_rule_supported(Op_CompareAndExchangeP)) return false; |
319 if (!Matcher::match_rule_supported(Op_CompareAndExchangeP)) return false; |
320 #endif |
320 #endif |
321 break; |
321 break; |
322 |
322 |
323 /* CompareAndExchange, Long: */ |
323 /* CompareAndExchange, Long: */ |
324 case vmIntrinsics::_compareAndExchangeLongVolatile: |
324 case vmIntrinsics::_compareAndExchangeLong: |
325 case vmIntrinsics::_compareAndExchangeLongAcquire: |
325 case vmIntrinsics::_compareAndExchangeLongAcquire: |
326 case vmIntrinsics::_compareAndExchangeLongRelease: |
326 case vmIntrinsics::_compareAndExchangeLongRelease: |
327 if (!Matcher::match_rule_supported(Op_CompareAndExchangeL)) return false; |
327 if (!Matcher::match_rule_supported(Op_CompareAndExchangeL)) return false; |
328 break; |
328 break; |
329 |
329 |
330 /* CompareAndExchange, Int: */ |
330 /* CompareAndExchange, Int: */ |
331 case vmIntrinsics::_compareAndExchangeIntVolatile: |
331 case vmIntrinsics::_compareAndExchangeInt: |
332 case vmIntrinsics::_compareAndExchangeIntAcquire: |
332 case vmIntrinsics::_compareAndExchangeIntAcquire: |
333 case vmIntrinsics::_compareAndExchangeIntRelease: |
333 case vmIntrinsics::_compareAndExchangeIntRelease: |
334 if (!Matcher::match_rule_supported(Op_CompareAndExchangeI)) return false; |
334 if (!Matcher::match_rule_supported(Op_CompareAndExchangeI)) return false; |
335 break; |
335 break; |
336 |
336 |
337 /* CompareAndExchange, Byte: */ |
337 /* CompareAndExchange, Byte: */ |
338 case vmIntrinsics::_compareAndExchangeByteVolatile: |
338 case vmIntrinsics::_compareAndExchangeByte: |
339 case vmIntrinsics::_compareAndExchangeByteAcquire: |
339 case vmIntrinsics::_compareAndExchangeByteAcquire: |
340 case vmIntrinsics::_compareAndExchangeByteRelease: |
340 case vmIntrinsics::_compareAndExchangeByteRelease: |
341 if (!Matcher::match_rule_supported(Op_CompareAndExchangeB)) return false; |
341 if (!Matcher::match_rule_supported(Op_CompareAndExchangeB)) return false; |
342 break; |
342 break; |
343 |
343 |
344 /* CompareAndExchange, Short: */ |
344 /* CompareAndExchange, Short: */ |
345 case vmIntrinsics::_compareAndExchangeShortVolatile: |
345 case vmIntrinsics::_compareAndExchangeShort: |
346 case vmIntrinsics::_compareAndExchangeShortAcquire: |
346 case vmIntrinsics::_compareAndExchangeShortAcquire: |
347 case vmIntrinsics::_compareAndExchangeShortRelease: |
347 case vmIntrinsics::_compareAndExchangeShortRelease: |
348 if (!Matcher::match_rule_supported(Op_CompareAndExchangeS)) return false; |
348 if (!Matcher::match_rule_supported(Op_CompareAndExchangeS)) return false; |
349 break; |
349 break; |
350 |
350 |