Lines Matching refs:VarHandle
131 static int32_t AccessModesBitMask(VarHandle::AccessMode mode) { in AccessModesBitMask()
136 static int32_t AccessModesBitMask(VarHandle::AccessMode first, Args... args) { in AccessModesBitMask()
141 static void InitializeVarHandle(ObjPtr<VarHandle> vh, in InitializeVarHandle()
145 vh->SetFieldObject<false>(VarHandle::VarTypeOffset(), var_type.Get()); in InitializeVarHandle()
146 vh->SetField32<false>(VarHandle::AccessModesBitMaskOffset(), access_modes_bit_mask); in InitializeVarHandle()
149 static void InitializeVarHandle(ObjPtr<VarHandle> vh, in InitializeVarHandle()
155 vh->SetFieldObject<false>(VarHandle::CoordinateType0Offset(), coordinate_type0.Get()); in InitializeVarHandle()
158 static void InitializeVarHandle(ObjPtr<VarHandle> vh, in InitializeVarHandle()
165 vh->SetFieldObject<false>(VarHandle::CoordinateType0Offset(), coordinate_type0.Get()); in InitializeVarHandle()
166 vh->SetFieldObject<false>(VarHandle::CoordinateType1Offset(), coordinate_type1.Get()); in InitializeVarHandle()
236 static bool AccessModeMatch(ObjPtr<VarHandle> vh, in AccessModeMatch()
237 VarHandle::AccessMode access_mode, in AccessModeMatch()
239 VarHandle::MatchKind expected_match) in AccessModeMatch()
246 VarHandle::AccessMode access_mode, in AccessModeExactMatch()
253 VarHandle::MatchKind::kExact); in AccessModeExactMatch()
258 VarHandle::AccessMode access_mode, in AccessModeWithConversionsMatch()
265 VarHandle::MatchKind::kWithConversions); in AccessModeWithConversionsMatch()
270 VarHandle::AccessMode access_mode, in AccessModeNoMatch()
277 VarHandle::MatchKind::kNone); in AccessModeNoMatch()
286 int32_t mask = AccessModesBitMask(VarHandle::AccessMode::kGet, in TEST_F()
287 VarHandle::AccessMode::kGetAndSet, in TEST_F()
288 VarHandle::AccessMode::kGetAndBitwiseXor); in TEST_F()
295 EXPECT_TRUE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGet)); in TEST_F()
296 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSet)); in TEST_F()
297 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetVolatile)); in TEST_F()
298 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSetVolatile)); in TEST_F()
299 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAcquire)); in TEST_F()
300 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSetRelease)); in TEST_F()
301 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetOpaque)); in TEST_F()
302 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSetOpaque)); in TEST_F()
303 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndSet)); in TEST_F()
304 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchange)); in TEST_F()
305 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeAcquire)); in TEST_F()
306 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeRelease)); in TEST_F()
307 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetPlain)); in TEST_F()
308 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSet)); in TEST_F()
309 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetAcquire)); in TEST_F()
310 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetRelease)); in TEST_F()
311 EXPECT_TRUE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSet)); in TEST_F()
312 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetAcquire)); in TEST_F()
313 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetRelease)); in TEST_F()
314 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAdd)); in TEST_F()
315 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddAcquire)); in TEST_F()
316 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddRelease)); in TEST_F()
317 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOr)); in TEST_F()
318 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrRelease)); in TEST_F()
319 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrAcquire)); in TEST_F()
320 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAnd)); in TEST_F()
321 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndRelease)); in TEST_F()
322 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndAcquire)); in TEST_F()
323 EXPECT_TRUE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXor)); in TEST_F()
324 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorRelease)); in TEST_F()
325 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorAcquire)); in TEST_F()
329 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGet; in TEST_F()
339 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kSet; in TEST_F()
349 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndSet; in TEST_F()
361 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndExchange; in TEST_F()
372 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGetAndAdd; in TEST_F()
386 auto test_mode = [=](VarHandle::AccessMode access_mode, Handle<MethodType> method_type) in TEST_F()
390 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGet, get)); in TEST_F()
391 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSet, set)); in TEST_F()
392 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetVolatile, get)); in TEST_F()
393 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetVolatile, set)); in TEST_F()
394 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAcquire, get)); in TEST_F()
395 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetRelease, set)); in TEST_F()
396 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetOpaque, get)); in TEST_F()
397 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetOpaque, set)); in TEST_F()
398 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndSet, compareAndSet)); in TEST_F()
399 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchange, compareAndExchange)); in TEST_F()
400 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeAcquire, compareAndExchange)); in TEST_F()
401 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeRelease, compareAndExchange)); in TEST_F()
402 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetPlain, compareAndSet)); in TEST_F()
403 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSet, compareAndSet)); in TEST_F()
404 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetAcquire, compareAndSet)); in TEST_F()
405 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetRelease, compareAndSet)); in TEST_F()
406 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSet, getAndUpdate)); in TEST_F()
407 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetAcquire, getAndUpdate)); in TEST_F()
408 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetRelease, getAndUpdate)); in TEST_F()
409 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAdd, getAndUpdate)); in TEST_F()
410 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddAcquire, getAndUpdate)); in TEST_F()
411 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddRelease, getAndUpdate)); in TEST_F()
412 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOr, getAndUpdate)); in TEST_F()
413 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrRelease, getAndUpdate)); in TEST_F()
414 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrAcquire, getAndUpdate)); in TEST_F()
415 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAnd, getAndUpdate)); in TEST_F()
416 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndRelease, getAndUpdate)); in TEST_F()
417 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndAcquire, getAndUpdate)); in TEST_F()
418 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXor, getAndUpdate)); in TEST_F()
419 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorRelease, getAndUpdate)); in TEST_F()
420 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorAcquire, getAndUpdate)); in TEST_F()
425 EXPECT_EQ(VarHandle::AccessModeTemplate::kGet, in TEST_F()
426 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGet)); in TEST_F()
427 EXPECT_EQ(VarHandle::AccessModeTemplate::kSet, in TEST_F()
428 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kSet)); in TEST_F()
429 EXPECT_EQ(VarHandle::AccessModeTemplate::kGet, in TEST_F()
430 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetVolatile)); in TEST_F()
431 EXPECT_EQ(VarHandle::AccessModeTemplate::kSet, in TEST_F()
432 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kSetVolatile)); in TEST_F()
433 EXPECT_EQ(VarHandle::AccessModeTemplate::kGet, in TEST_F()
434 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAcquire)); in TEST_F()
435 EXPECT_EQ(VarHandle::AccessModeTemplate::kSet, in TEST_F()
436 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kSetRelease)); in TEST_F()
437 EXPECT_EQ(VarHandle::AccessModeTemplate::kGet, in TEST_F()
438 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetOpaque)); in TEST_F()
439 EXPECT_EQ(VarHandle::AccessModeTemplate::kSet, in TEST_F()
440 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kSetOpaque)); in TEST_F()
441 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndSet, in TEST_F()
442 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kCompareAndSet)); in TEST_F()
443 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndExchange, in TEST_F()
444 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kCompareAndExchange)); in TEST_F()
445 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndExchange, in TEST_F()
446 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kCompareAndExchangeAcquire)); in TEST_F()
447 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndExchange, in TEST_F()
448 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kCompareAndExchangeRelease)); in TEST_F()
449 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndSet, in TEST_F()
450 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kWeakCompareAndSetPlain)); in TEST_F()
451 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndSet, in TEST_F()
452 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kWeakCompareAndSet)); in TEST_F()
453 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndSet, in TEST_F()
454 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kWeakCompareAndSetAcquire)); in TEST_F()
455 EXPECT_EQ(VarHandle::AccessModeTemplate::kCompareAndSet, in TEST_F()
456 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kWeakCompareAndSetRelease)); in TEST_F()
457 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
458 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndSet)); in TEST_F()
459 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
460 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndSetAcquire)); in TEST_F()
461 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
462 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndSetRelease)); in TEST_F()
463 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
464 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseOr)); in TEST_F()
465 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
466 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseOrRelease)); in TEST_F()
467 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
468 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseOrAcquire)); in TEST_F()
469 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
470 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseAnd)); in TEST_F()
471 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
472 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseAndRelease)); in TEST_F()
473 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
474 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseAndAcquire)); in TEST_F()
475 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
476 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseXor)); in TEST_F()
477 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
478 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseXorRelease)); in TEST_F()
479 EXPECT_EQ(VarHandle::AccessModeTemplate::kGetAndUpdate, in TEST_F()
480 VarHandle::GetAccessModeTemplate(VarHandle::AccessMode::kGetAndBitwiseXorAcquire)); in TEST_F()
489 int32_t mask = AccessModesBitMask(VarHandle::AccessMode::kSet, in TEST_F()
490 VarHandle::AccessMode::kGetOpaque, in TEST_F()
491 VarHandle::AccessMode::kGetAndBitwiseAndRelease); in TEST_F()
498 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGet)); in TEST_F()
499 EXPECT_TRUE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSet)); in TEST_F()
500 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetVolatile)); in TEST_F()
501 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSetVolatile)); in TEST_F()
502 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAcquire)); in TEST_F()
503 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSetRelease)); in TEST_F()
504 EXPECT_TRUE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetOpaque)); in TEST_F()
505 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kSetOpaque)); in TEST_F()
506 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndSet)); in TEST_F()
507 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchange)); in TEST_F()
508 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeAcquire)); in TEST_F()
509 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeRelease)); in TEST_F()
510 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetPlain)); in TEST_F()
511 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSet)); in TEST_F()
512 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetAcquire)); in TEST_F()
513 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetRelease)); in TEST_F()
514 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSet)); in TEST_F()
515 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetAcquire)); in TEST_F()
516 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetRelease)); in TEST_F()
517 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAdd)); in TEST_F()
518 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddAcquire)); in TEST_F()
519 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddRelease)); in TEST_F()
520 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOr)); in TEST_F()
521 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrRelease)); in TEST_F()
522 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrAcquire)); in TEST_F()
523 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAnd)); in TEST_F()
524 EXPECT_TRUE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndRelease)); in TEST_F()
525 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndAcquire)); in TEST_F()
526 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXor)); in TEST_F()
527 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorRelease)); in TEST_F()
528 EXPECT_FALSE(fvh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorAcquire)); in TEST_F()
532 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGet; in TEST_F()
541 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kSet; in TEST_F()
550 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndSet; in TEST_F()
559 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndExchange; in TEST_F()
569 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGetAndAdd; in TEST_F()
583 auto test_mode = [=](VarHandle::AccessMode access_mode, Handle<MethodType> method_type) in TEST_F()
587 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGet, get)); in TEST_F()
588 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSet, set)); in TEST_F()
589 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetVolatile, get)); in TEST_F()
590 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetVolatile, set)); in TEST_F()
591 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAcquire, get)); in TEST_F()
592 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetRelease, set)); in TEST_F()
593 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetOpaque, get)); in TEST_F()
594 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetOpaque, set)); in TEST_F()
595 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndSet, compareAndSet)); in TEST_F()
596 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchange, compareAndExchange)); in TEST_F()
597 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeAcquire, compareAndExchange)); in TEST_F()
598 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeRelease, compareAndExchange)); in TEST_F()
599 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetPlain, compareAndSet)); in TEST_F()
600 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSet, compareAndSet)); in TEST_F()
601 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetAcquire, compareAndSet)); in TEST_F()
602 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetRelease, compareAndSet)); in TEST_F()
603 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSet, getAndUpdate)); in TEST_F()
604 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetAcquire, getAndUpdate)); in TEST_F()
605 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetRelease, getAndUpdate)); in TEST_F()
606 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAdd, getAndUpdate)); in TEST_F()
607 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddAcquire, getAndUpdate)); in TEST_F()
608 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddRelease, getAndUpdate)); in TEST_F()
609 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOr, getAndUpdate)); in TEST_F()
610 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrRelease, getAndUpdate)); in TEST_F()
611 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrAcquire, getAndUpdate)); in TEST_F()
612 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAnd, getAndUpdate)); in TEST_F()
613 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndRelease, getAndUpdate)); in TEST_F()
614 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndAcquire, getAndUpdate)); in TEST_F()
615 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXor, getAndUpdate)); in TEST_F()
616 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorRelease, getAndUpdate)); in TEST_F()
617 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorAcquire, getAndUpdate)); in TEST_F()
626 int32_t mask = AccessModesBitMask(VarHandle::AccessMode::kGet, in TEST_F()
627 VarHandle::AccessMode::kSet, in TEST_F()
628 VarHandle::AccessMode::kGetVolatile, in TEST_F()
629 VarHandle::AccessMode::kSetVolatile, in TEST_F()
630 VarHandle::AccessMode::kGetAcquire, in TEST_F()
631 VarHandle::AccessMode::kSetRelease, in TEST_F()
632 VarHandle::AccessMode::kGetOpaque, in TEST_F()
633 VarHandle::AccessMode::kSetOpaque, in TEST_F()
634 VarHandle::AccessMode::kCompareAndSet, in TEST_F()
635 VarHandle::AccessMode::kCompareAndExchange, in TEST_F()
636 VarHandle::AccessMode::kCompareAndExchangeAcquire, in TEST_F()
637 VarHandle::AccessMode::kCompareAndExchangeRelease, in TEST_F()
638 VarHandle::AccessMode::kWeakCompareAndSetPlain, in TEST_F()
639 VarHandle::AccessMode::kWeakCompareAndSet, in TEST_F()
640 VarHandle::AccessMode::kWeakCompareAndSetAcquire, in TEST_F()
641 VarHandle::AccessMode::kWeakCompareAndSetRelease, in TEST_F()
642 VarHandle::AccessMode::kGetAndSet, in TEST_F()
643 VarHandle::AccessMode::kGetAndSetAcquire, in TEST_F()
644 VarHandle::AccessMode::kGetAndSetRelease, in TEST_F()
645 VarHandle::AccessMode::kGetAndAdd, in TEST_F()
646 VarHandle::AccessMode::kGetAndAddAcquire, in TEST_F()
647 VarHandle::AccessMode::kGetAndAddRelease, in TEST_F()
648 VarHandle::AccessMode::kGetAndBitwiseOr, in TEST_F()
649 VarHandle::AccessMode::kGetAndBitwiseOrRelease, in TEST_F()
650 VarHandle::AccessMode::kGetAndBitwiseOrAcquire, in TEST_F()
651 VarHandle::AccessMode::kGetAndBitwiseAnd, in TEST_F()
652 VarHandle::AccessMode::kGetAndBitwiseAndRelease, in TEST_F()
653 VarHandle::AccessMode::kGetAndBitwiseAndAcquire, in TEST_F()
654 VarHandle::AccessMode::kGetAndBitwiseXor, in TEST_F()
655 VarHandle::AccessMode::kGetAndBitwiseXorRelease, in TEST_F()
656 VarHandle::AccessMode::kGetAndBitwiseXorAcquire); in TEST_F()
665 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGet)); in TEST_F()
666 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSet)); in TEST_F()
667 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetVolatile)); in TEST_F()
668 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetVolatile)); in TEST_F()
669 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAcquire)); in TEST_F()
670 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetRelease)); in TEST_F()
671 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetOpaque)); in TEST_F()
672 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetOpaque)); in TEST_F()
673 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndSet)); in TEST_F()
674 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchange)); in TEST_F()
675 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeAcquire)); in TEST_F()
676 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeRelease)); in TEST_F()
677 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetPlain)); in TEST_F()
678 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSet)); in TEST_F()
679 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetAcquire)); in TEST_F()
680 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetRelease)); in TEST_F()
681 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSet)); in TEST_F()
682 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetAcquire)); in TEST_F()
683 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetRelease)); in TEST_F()
684 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAdd)); in TEST_F()
685 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddAcquire)); in TEST_F()
686 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddRelease)); in TEST_F()
687 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOr)); in TEST_F()
688 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrRelease)); in TEST_F()
689 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrAcquire)); in TEST_F()
690 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAnd)); in TEST_F()
691 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndRelease)); in TEST_F()
692 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndAcquire)); in TEST_F()
693 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXor)); in TEST_F()
694 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorRelease)); in TEST_F()
695 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorAcquire)); in TEST_F()
699 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGet; in TEST_F()
708 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kSet; in TEST_F()
717 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndSet; in TEST_F()
726 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndExchange; in TEST_F()
735 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGetAndAdd; in TEST_F()
753 auto test_mode = [=](VarHandle::AccessMode access_mode, Handle<MethodType> method_type) in TEST_F()
757 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGet, get)); in TEST_F()
758 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSet, set)); in TEST_F()
759 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetVolatile, get)); in TEST_F()
760 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetVolatile, set)); in TEST_F()
761 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAcquire, get)); in TEST_F()
762 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetRelease, set)); in TEST_F()
763 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetOpaque, get)); in TEST_F()
764 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetOpaque, set)); in TEST_F()
765 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndSet, compareAndSet)); in TEST_F()
766 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchange, compareAndExchange)); in TEST_F()
767 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeAcquire, compareAndExchange)); in TEST_F()
768 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeRelease, compareAndExchange)); in TEST_F()
769 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetPlain, compareAndSet)); in TEST_F()
770 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSet, compareAndSet)); in TEST_F()
771 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetAcquire, compareAndSet)); in TEST_F()
772 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetRelease, compareAndSet)); in TEST_F()
773 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSet, getAndUpdate)); in TEST_F()
774 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetAcquire, getAndUpdate)); in TEST_F()
775 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetRelease, getAndUpdate)); in TEST_F()
776 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAdd, getAndUpdate)); in TEST_F()
777 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddAcquire, getAndUpdate)); in TEST_F()
778 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddRelease, getAndUpdate)); in TEST_F()
779 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOr, getAndUpdate)); in TEST_F()
780 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrRelease, getAndUpdate)); in TEST_F()
781 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrAcquire, getAndUpdate)); in TEST_F()
782 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAnd, getAndUpdate)); in TEST_F()
783 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndRelease, getAndUpdate)); in TEST_F()
784 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndAcquire, getAndUpdate)); in TEST_F()
785 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXor, getAndUpdate)); in TEST_F()
786 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorRelease, getAndUpdate)); in TEST_F()
787 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorAcquire, getAndUpdate)); in TEST_F()
796 int32_t mask = AccessModesBitMask(VarHandle::AccessMode::kGet, in TEST_F()
797 VarHandle::AccessMode::kGetVolatile, in TEST_F()
798 VarHandle::AccessMode::kGetAcquire, in TEST_F()
799 VarHandle::AccessMode::kGetOpaque, in TEST_F()
800 VarHandle::AccessMode::kCompareAndSet, in TEST_F()
801 VarHandle::AccessMode::kCompareAndExchangeAcquire, in TEST_F()
802 VarHandle::AccessMode::kWeakCompareAndSetPlain, in TEST_F()
803 VarHandle::AccessMode::kWeakCompareAndSetAcquire, in TEST_F()
804 VarHandle::AccessMode::kGetAndSet, in TEST_F()
805 VarHandle::AccessMode::kGetAndSetRelease, in TEST_F()
806 VarHandle::AccessMode::kGetAndAddAcquire, in TEST_F()
807 VarHandle::AccessMode::kGetAndBitwiseOr, in TEST_F()
808 VarHandle::AccessMode::kGetAndBitwiseOrAcquire, in TEST_F()
809 VarHandle::AccessMode::kGetAndBitwiseAndRelease, in TEST_F()
810 VarHandle::AccessMode::kGetAndBitwiseXor, in TEST_F()
811 VarHandle::AccessMode::kGetAndBitwiseXorAcquire); in TEST_F()
821 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGet)); in TEST_F()
822 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSet)); in TEST_F()
823 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetVolatile)); in TEST_F()
824 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetVolatile)); in TEST_F()
825 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAcquire)); in TEST_F()
826 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetRelease)); in TEST_F()
827 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetOpaque)); in TEST_F()
828 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetOpaque)); in TEST_F()
829 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndSet)); in TEST_F()
830 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchange)); in TEST_F()
831 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeAcquire)); in TEST_F()
832 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeRelease)); in TEST_F()
833 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetPlain)); in TEST_F()
834 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSet)); in TEST_F()
835 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetAcquire)); in TEST_F()
836 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetRelease)); in TEST_F()
837 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSet)); in TEST_F()
838 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetAcquire)); in TEST_F()
839 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetRelease)); in TEST_F()
840 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAdd)); in TEST_F()
841 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddAcquire)); in TEST_F()
842 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddRelease)); in TEST_F()
843 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOr)); in TEST_F()
844 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrRelease)); in TEST_F()
845 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrAcquire)); in TEST_F()
846 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAnd)); in TEST_F()
847 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndRelease)); in TEST_F()
848 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndAcquire)); in TEST_F()
849 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXor)); in TEST_F()
850 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorRelease)); in TEST_F()
851 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorAcquire)); in TEST_F()
855 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGet; in TEST_F()
864 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kSet; in TEST_F()
873 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndSet; in TEST_F()
882 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndExchange; in TEST_F()
891 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGetAndAdd; in TEST_F()
905 auto test_mode = [=](VarHandle::AccessMode access_mode, Handle<MethodType> method_type) in TEST_F()
909 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGet, get)); in TEST_F()
910 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSet, set)); in TEST_F()
911 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetVolatile, get)); in TEST_F()
912 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetVolatile, set)); in TEST_F()
913 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAcquire, get)); in TEST_F()
914 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetRelease, set)); in TEST_F()
915 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetOpaque, get)); in TEST_F()
916 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetOpaque, set)); in TEST_F()
917 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndSet, compareAndSet)); in TEST_F()
918 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchange, compareAndExchange)); in TEST_F()
919 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeAcquire, compareAndExchange)); in TEST_F()
920 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeRelease, compareAndExchange)); in TEST_F()
921 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetPlain, compareAndSet)); in TEST_F()
922 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSet, compareAndSet)); in TEST_F()
923 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetAcquire, compareAndSet)); in TEST_F()
924 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetRelease, compareAndSet)); in TEST_F()
925 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSet, getAndUpdate)); in TEST_F()
926 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetAcquire, getAndUpdate)); in TEST_F()
927 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetRelease, getAndUpdate)); in TEST_F()
928 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAdd, getAndUpdate)); in TEST_F()
929 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddAcquire, getAndUpdate)); in TEST_F()
930 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddRelease, getAndUpdate)); in TEST_F()
931 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOr, getAndUpdate)); in TEST_F()
932 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrRelease, getAndUpdate)); in TEST_F()
933 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrAcquire, getAndUpdate)); in TEST_F()
934 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAnd, getAndUpdate)); in TEST_F()
935 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndRelease, getAndUpdate)); in TEST_F()
936 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndAcquire, getAndUpdate)); in TEST_F()
937 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXor, getAndUpdate)); in TEST_F()
938 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorRelease, getAndUpdate)); in TEST_F()
939 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorAcquire, getAndUpdate)); in TEST_F()
948 int32_t mask = AccessModesBitMask(VarHandle::AccessMode::kGet, in TEST_F()
949 VarHandle::AccessMode::kGetVolatile, in TEST_F()
950 VarHandle::AccessMode::kGetAcquire, in TEST_F()
951 VarHandle::AccessMode::kGetOpaque, in TEST_F()
952 VarHandle::AccessMode::kCompareAndSet, in TEST_F()
953 VarHandle::AccessMode::kCompareAndExchangeAcquire, in TEST_F()
954 VarHandle::AccessMode::kWeakCompareAndSetPlain, in TEST_F()
955 VarHandle::AccessMode::kWeakCompareAndSetAcquire, in TEST_F()
956 VarHandle::AccessMode::kGetAndSet, in TEST_F()
957 VarHandle::AccessMode::kGetAndSetRelease, in TEST_F()
958 VarHandle::AccessMode::kGetAndAddAcquire, in TEST_F()
959 VarHandle::AccessMode::kGetAndBitwiseOr, in TEST_F()
960 VarHandle::AccessMode::kGetAndBitwiseOrAcquire, in TEST_F()
961 VarHandle::AccessMode::kGetAndBitwiseAndRelease, in TEST_F()
962 VarHandle::AccessMode::kGetAndBitwiseXor, in TEST_F()
963 VarHandle::AccessMode::kGetAndBitwiseXorAcquire); in TEST_F()
973 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGet)); in TEST_F()
974 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSet)); in TEST_F()
975 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetVolatile)); in TEST_F()
976 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetVolatile)); in TEST_F()
977 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAcquire)); in TEST_F()
978 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetRelease)); in TEST_F()
979 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetOpaque)); in TEST_F()
980 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kSetOpaque)); in TEST_F()
981 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndSet)); in TEST_F()
982 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchange)); in TEST_F()
983 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeAcquire)); in TEST_F()
984 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kCompareAndExchangeRelease)); in TEST_F()
985 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetPlain)); in TEST_F()
986 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSet)); in TEST_F()
987 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetAcquire)); in TEST_F()
988 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kWeakCompareAndSetRelease)); in TEST_F()
989 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSet)); in TEST_F()
990 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetAcquire)); in TEST_F()
991 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndSetRelease)); in TEST_F()
992 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAdd)); in TEST_F()
993 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddAcquire)); in TEST_F()
994 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndAddRelease)); in TEST_F()
995 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOr)); in TEST_F()
996 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrRelease)); in TEST_F()
997 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseOrAcquire)); in TEST_F()
998 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAnd)); in TEST_F()
999 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndRelease)); in TEST_F()
1000 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseAndAcquire)); in TEST_F()
1001 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXor)); in TEST_F()
1002 EXPECT_FALSE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorRelease)); in TEST_F()
1003 EXPECT_TRUE(vh->IsAccessModeSupported(VarHandle::AccessMode::kGetAndBitwiseXorAcquire)); in TEST_F()
1007 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGet; in TEST_F()
1016 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kSet; in TEST_F()
1025 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndSet; in TEST_F()
1034 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kCompareAndExchange; in TEST_F()
1043 const VarHandle::AccessMode access_mode = VarHandle::AccessMode::kGetAndAdd; in TEST_F()
1058 auto test_mode = [=](VarHandle::AccessMode access_mode, Handle<MethodType> method_type) in TEST_F()
1062 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGet, get)); in TEST_F()
1063 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSet, set)); in TEST_F()
1064 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetVolatile, get)); in TEST_F()
1065 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetVolatile, set)); in TEST_F()
1066 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAcquire, get)); in TEST_F()
1067 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetRelease, set)); in TEST_F()
1068 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetOpaque, get)); in TEST_F()
1069 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kSetOpaque, set)); in TEST_F()
1070 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndSet, compareAndSet)); in TEST_F()
1071 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchange, compareAndExchange)); in TEST_F()
1072 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeAcquire, compareAndExchange)); in TEST_F()
1073 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kCompareAndExchangeRelease, compareAndExchange)); in TEST_F()
1074 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetPlain, compareAndSet)); in TEST_F()
1075 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSet, compareAndSet)); in TEST_F()
1076 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetAcquire, compareAndSet)); in TEST_F()
1077 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kWeakCompareAndSetRelease, compareAndSet)); in TEST_F()
1078 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSet, getAndUpdate)); in TEST_F()
1079 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetAcquire, getAndUpdate)); in TEST_F()
1080 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndSetRelease, getAndUpdate)); in TEST_F()
1081 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAdd, getAndUpdate)); in TEST_F()
1082 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddAcquire, getAndUpdate)); in TEST_F()
1083 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndAddRelease, getAndUpdate)); in TEST_F()
1084 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOr, getAndUpdate)); in TEST_F()
1085 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrRelease, getAndUpdate)); in TEST_F()
1086 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseOrAcquire, getAndUpdate)); in TEST_F()
1087 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAnd, getAndUpdate)); in TEST_F()
1088 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndRelease, getAndUpdate)); in TEST_F()
1089 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseAndAcquire, getAndUpdate)); in TEST_F()
1090 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXor, getAndUpdate)); in TEST_F()
1091 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorRelease, getAndUpdate)); in TEST_F()
1092 EXPECT_TRUE(test_mode(VarHandle::AccessMode::kGetAndBitwiseXorAcquire, getAndUpdate)); in TEST_F()
1097 VarHandle::AccessMode access_mode; in TEST_F()
1100 EXPECT_FALSE(VarHandle::GetAccessModeByMethodName(nullptr, &access_mode)); in TEST_F()
1101 EXPECT_FALSE(VarHandle::GetAccessModeByMethodName("", &access_mode)); in TEST_F()
1102 EXPECT_FALSE(VarHandle::GetAccessModeByMethodName("CompareAndExchange", &access_mode)); in TEST_F()
1103 EXPECT_FALSE(VarHandle::GetAccessModeByMethodName("compareAndExchangX", &access_mode)); in TEST_F()
1106 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("compareAndExchange", &access_mode)); in TEST_F()
1107 EXPECT_EQ(VarHandle::AccessMode::kCompareAndExchange, access_mode); in TEST_F()
1108 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("compareAndExchangeAcquire", &access_mode)); in TEST_F()
1109 EXPECT_EQ(VarHandle::AccessMode::kCompareAndExchangeAcquire, access_mode); in TEST_F()
1110 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("compareAndExchangeRelease", &access_mode)); in TEST_F()
1111 EXPECT_EQ(VarHandle::AccessMode::kCompareAndExchangeRelease, access_mode); in TEST_F()
1112 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("compareAndSet", &access_mode)); in TEST_F()
1113 EXPECT_EQ(VarHandle::AccessMode::kCompareAndSet, access_mode); in TEST_F()
1114 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("get", &access_mode)); in TEST_F()
1115 EXPECT_EQ(VarHandle::AccessMode::kGet, access_mode); in TEST_F()
1116 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAcquire", &access_mode)); in TEST_F()
1117 EXPECT_EQ(VarHandle::AccessMode::kGetAcquire, access_mode); in TEST_F()
1118 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndAdd", &access_mode)); in TEST_F()
1119 EXPECT_EQ(VarHandle::AccessMode::kGetAndAdd, access_mode); in TEST_F()
1120 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndAddAcquire", &access_mode)); in TEST_F()
1121 EXPECT_EQ(VarHandle::AccessMode::kGetAndAddAcquire, access_mode); in TEST_F()
1122 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndAddRelease", &access_mode)); in TEST_F()
1123 EXPECT_EQ(VarHandle::AccessMode::kGetAndAddRelease, access_mode); in TEST_F()
1124 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseAnd", &access_mode)); in TEST_F()
1125 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseAnd, access_mode); in TEST_F()
1126 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseAndAcquire", &access_mode)); in TEST_F()
1127 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseAndAcquire, access_mode); in TEST_F()
1128 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseAndRelease", &access_mode)); in TEST_F()
1129 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseAndRelease, access_mode); in TEST_F()
1130 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseOr", &access_mode)); in TEST_F()
1131 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseOr, access_mode); in TEST_F()
1132 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseOrAcquire", &access_mode)); in TEST_F()
1133 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseOrAcquire, access_mode); in TEST_F()
1134 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseOrRelease", &access_mode)); in TEST_F()
1135 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseOrRelease, access_mode); in TEST_F()
1136 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseXor", &access_mode)); in TEST_F()
1137 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseXor, access_mode); in TEST_F()
1138 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseXorAcquire", &access_mode)); in TEST_F()
1139 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseXorAcquire, access_mode); in TEST_F()
1140 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndBitwiseXorRelease", &access_mode)); in TEST_F()
1141 EXPECT_EQ(VarHandle::AccessMode::kGetAndBitwiseXorRelease, access_mode); in TEST_F()
1142 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndSet", &access_mode)); in TEST_F()
1143 EXPECT_EQ(VarHandle::AccessMode::kGetAndSet, access_mode); in TEST_F()
1144 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndSetAcquire", &access_mode)); in TEST_F()
1145 EXPECT_EQ(VarHandle::AccessMode::kGetAndSetAcquire, access_mode); in TEST_F()
1146 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getAndSetRelease", &access_mode)); in TEST_F()
1147 EXPECT_EQ(VarHandle::AccessMode::kGetAndSetRelease, access_mode); in TEST_F()
1148 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getOpaque", &access_mode)); in TEST_F()
1149 EXPECT_EQ(VarHandle::AccessMode::kGetOpaque, access_mode); in TEST_F()
1150 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("getVolatile", &access_mode)); in TEST_F()
1151 EXPECT_EQ(VarHandle::AccessMode::kGetVolatile, access_mode); in TEST_F()
1152 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("set", &access_mode)); in TEST_F()
1153 EXPECT_EQ(VarHandle::AccessMode::kSet, access_mode); in TEST_F()
1154 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("setOpaque", &access_mode)); in TEST_F()
1155 EXPECT_EQ(VarHandle::AccessMode::kSetOpaque, access_mode); in TEST_F()
1156 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("setRelease", &access_mode)); in TEST_F()
1157 EXPECT_EQ(VarHandle::AccessMode::kSetRelease, access_mode); in TEST_F()
1158 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("setVolatile", &access_mode)); in TEST_F()
1159 EXPECT_EQ(VarHandle::AccessMode::kSetVolatile, access_mode); in TEST_F()
1160 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("weakCompareAndSet", &access_mode)); in TEST_F()
1161 EXPECT_EQ(VarHandle::AccessMode::kWeakCompareAndSet, access_mode); in TEST_F()
1162 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("weakCompareAndSetAcquire", &access_mode)); in TEST_F()
1163 EXPECT_EQ(VarHandle::AccessMode::kWeakCompareAndSetAcquire, access_mode); in TEST_F()
1164 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("weakCompareAndSetPlain", &access_mode)); in TEST_F()
1165 EXPECT_EQ(VarHandle::AccessMode::kWeakCompareAndSetPlain, access_mode); in TEST_F()
1166 EXPECT_TRUE(VarHandle::GetAccessModeByMethodName("weakCompareAndSetRelease", &access_mode)); in TEST_F()
1167 EXPECT_EQ(VarHandle::AccessMode::kWeakCompareAndSetRelease, access_mode); in TEST_F()