equal
deleted
inserted
replaced
314 }; |
314 }; |
315 break; |
315 break; |
316 case "G1": |
316 case "G1": |
317 // a card mark volatile barrier should be generated |
317 // a card mark volatile barrier should be generated |
318 // before the card mark strb |
318 // before the card mark strb |
|
319 // |
|
320 // following the fix for 8225776 the G1 barrier is now |
|
321 // scheduled out of line after the membar volatile and |
|
322 // and subsequent return |
319 matches = new String[] { |
323 matches = new String[] { |
320 "membar_release \\(elided\\)", |
324 "membar_release \\(elided\\)", |
321 useCompressedOops ? "stlrw?" : "stlr", |
325 useCompressedOops ? "stlrw?" : "stlr", |
322 "membar_volatile", |
|
323 "dmb ish", |
|
324 "strb", |
|
325 "membar_volatile \\(elided\\)", |
326 "membar_volatile \\(elided\\)", |
326 "ret" |
327 "ret", |
|
328 "membar_volatile", |
|
329 "dmb ish", |
|
330 "strb" |
327 }; |
331 }; |
328 break; |
332 break; |
329 case "Shenandoah": |
333 case "Shenandoah": |
330 case "ShenandoahTraversal": |
334 case "ShenandoahTraversal": |
331 // Shenandoah generates normal object graphs for |
335 // Shenandoah generates normal object graphs for |
352 }; |
356 }; |
353 break; |
357 break; |
354 case "G1": |
358 case "G1": |
355 // a card mark volatile barrier should be generated |
359 // a card mark volatile barrier should be generated |
356 // before the card mark strb |
360 // before the card mark strb |
|
361 // |
|
362 // following the fix for 8225776 the G1 barrier is now |
|
363 // scheduled out of line after the membar volatile and |
|
364 // and subsequent return |
357 matches = new String[] { |
365 matches = new String[] { |
358 "membar_release", |
366 "membar_release", |
359 "dmb ish", |
367 "dmb ish", |
360 useCompressedOops ? "strw?" : "str", |
368 useCompressedOops ? "strw?" : "str", |
361 "membar_volatile", |
369 "membar_volatile", |
362 "dmb ish", |
370 "dmb ish", |
363 "strb", |
371 "ret", |
364 "membar_volatile", |
372 "membar_volatile", |
365 "dmb ish", |
373 "dmb ish", |
366 "ret" |
374 "strb" |
367 }; |
375 }; |
368 break; |
376 break; |
369 case "CMSCondMark": |
377 case "CMSCondMark": |
370 // a card mark volatile barrier should be generated |
378 // a card mark volatile barrier should be generated |
371 // before the card mark strb from the StoreCM and the |
379 // before the card mark strb from the StoreCM and the |
475 }; |
483 }; |
476 break; |
484 break; |
477 case "G1": |
485 case "G1": |
478 // a card mark volatile barrier should be generated |
486 // a card mark volatile barrier should be generated |
479 // before the card mark strb |
487 // before the card mark strb |
|
488 // |
|
489 // following the fix for 8225776 the G1 barrier is now |
|
490 // scheduled out of line after the membar acquire and |
|
491 // and subsequent return |
480 matches = new String[] { |
492 matches = new String[] { |
481 "membar_release \\(elided\\)", |
493 "membar_release \\(elided\\)", |
482 useCompressedOops ? "cmpxchgw?_acq" : "cmpxchg_acq", |
494 useCompressedOops ? "cmpxchgw?_acq" : "cmpxchg_acq", |
483 "membar_volatile", |
495 "membar_acquire \\(elided\\)", |
484 "dmb ish", |
496 "ret", |
485 "strb", |
497 "membar_volatile", |
486 "membar_acquire \\(elided\\)", |
498 "dmb ish", |
487 "ret" |
499 "strb" |
488 }; |
500 }; |
489 break; |
501 break; |
490 case "Shenandoah": |
502 case "Shenandoah": |
491 case "ShenandoahTraversal": |
503 case "ShenandoahTraversal": |
492 // For volatile CAS, Shenanodoah generates normal |
504 // For volatile CAS, Shenanodoah generates normal |
513 }; |
525 }; |
514 break; |
526 break; |
515 case "G1": |
527 case "G1": |
516 // a card mark volatile barrier should be generated |
528 // a card mark volatile barrier should be generated |
517 // before the card mark strb |
529 // before the card mark strb |
|
530 // |
|
531 // following the fix for 8225776 the G1 barrier is now |
|
532 // scheduled out of line after the membar acquire and |
|
533 // and subsequent return |
518 matches = new String[] { |
534 matches = new String[] { |
519 "membar_release", |
535 "membar_release", |
520 "dmb ish", |
536 "dmb ish", |
521 useCompressedOops ? "cmpxchgw? " : "cmpxchg ", |
537 useCompressedOops ? "cmpxchgw? " : "cmpxchg ", |
522 "membar_volatile", |
538 "membar_acquire", |
523 "dmb ish", |
539 "dmb ish", |
524 "strb", |
540 "ret", |
525 "membar_acquire", |
541 "membar_volatile", |
526 "dmb ish", |
542 "dmb ish", |
527 "ret" |
543 "strb" |
528 }; |
544 }; |
529 break; |
545 break; |
530 case "CMSCondMark": |
546 case "CMSCondMark": |
531 // a card mark volatile barrier should be generated |
547 // a card mark volatile barrier should be generated |
532 // before the card mark strb from the StoreCM and the |
548 // before the card mark strb from the StoreCM and the |
651 return; |
667 return; |
652 |
668 |
653 case "G1": |
669 case "G1": |
654 // a card mark volatile barrier should be generated |
670 // a card mark volatile barrier should be generated |
655 // before the card mark strb |
671 // before the card mark strb |
|
672 // |
|
673 // following the fix for 8225776 the G1 barrier is now |
|
674 // scheduled out of line after the membar acquire and |
|
675 // and subsequent return |
656 matches = new String[] { |
676 matches = new String[] { |
657 "membar_release \\(elided\\)", |
677 "membar_release \\(elided\\)", |
658 useCompressedOops ? "cmpxchgw?_acq" : "cmpxchg_acq", |
678 useCompressedOops ? "cmpxchgw?_acq" : "cmpxchg_acq", |
659 "membar_volatile", |
679 "membar_acquire \\(elided\\)", |
660 "dmb ish", |
680 "ret", |
661 "strb", |
681 "membar_volatile", |
662 "membar_acquire \\(elided\\)", |
682 "dmb ish", |
663 "ret" |
683 "strb" |
664 }; |
684 }; |
665 break; |
685 break; |
666 case "Shenandoah": |
686 case "Shenandoah": |
667 case "ShenandoahTraversal": |
687 case "ShenandoahTraversal": |
668 // For volatile CAS, Shenanodoah generates normal |
688 // For volatile CAS, Shenanodoah generates normal |
689 }; |
709 }; |
690 break; |
710 break; |
691 case "G1": |
711 case "G1": |
692 // a card mark volatile barrier should be generated |
712 // a card mark volatile barrier should be generated |
693 // before the card mark strb |
713 // before the card mark strb |
|
714 // |
|
715 // following the fix for 8225776 the G1 barrier is now |
|
716 // scheduled out of line after the membar acquire and |
|
717 // and subsequent return |
694 matches = new String[] { |
718 matches = new String[] { |
695 "membar_release", |
719 "membar_release", |
696 "dmb ish", |
720 "dmb ish", |
697 useCompressedOops ? "cmpxchgw? " : "cmpxchg ", |
721 useCompressedOops ? "cmpxchgw? " : "cmpxchg ", |
698 "membar_volatile", |
722 "membar_acquire", |
699 "dmb ish", |
723 "dmb ish", |
700 "strb", |
724 "ret", |
701 "membar_acquire", |
725 "membar_volatile", |
702 "dmb ish", |
726 "dmb ish", |
703 "ret" |
727 "strb" |
704 }; |
728 }; |
705 break; |
729 break; |
706 case "CMSCondMark": |
730 case "CMSCondMark": |
707 // a card mark volatile barrier should be generated |
731 // a card mark volatile barrier should be generated |
708 // before the card mark strb from the StoreCM and the |
732 // before the card mark strb from the StoreCM and the |
807 }; |
831 }; |
808 break; |
832 break; |
809 case "G1": |
833 case "G1": |
810 // a card mark volatile barrier should be generated |
834 // a card mark volatile barrier should be generated |
811 // before the card mark strb |
835 // before the card mark strb |
|
836 // |
|
837 // following the fix for 8225776 the G1 barrier is now |
|
838 // scheduled out of line after the membar acquire and |
|
839 // and subsequent return |
812 matches = new String[] { |
840 matches = new String[] { |
813 "membar_release \\(elided\\)", |
841 "membar_release \\(elided\\)", |
814 useCompressedOops ? "atomic_xchgw?_acq" : "atomic_xchg_acq", |
842 useCompressedOops ? "atomic_xchgw?_acq" : "atomic_xchg_acq", |
815 "membar_volatile", |
843 "membar_acquire \\(elided\\)", |
816 "dmb ish", |
844 "ret", |
817 "strb", |
845 "membar_volatile", |
818 "membar_acquire \\(elided\\)", |
846 "dmb ish", |
819 "ret" |
847 "strb" |
820 }; |
848 }; |
821 break; |
849 break; |
822 case "Shenandoah": |
850 case "Shenandoah": |
823 case "ShenandoahTraversal": |
851 case "ShenandoahTraversal": |
824 matches = new String[] { |
852 matches = new String[] { |
843 }; |
871 }; |
844 break; |
872 break; |
845 case "G1": |
873 case "G1": |
846 // a card mark volatile barrier should be generated |
874 // a card mark volatile barrier should be generated |
847 // before the card mark strb |
875 // before the card mark strb |
|
876 // |
|
877 // following the fix for 8225776 the G1 barrier is now |
|
878 // scheduled out of line after the membar acquire and |
|
879 // and subsequent return |
848 matches = new String[] { |
880 matches = new String[] { |
849 "membar_release", |
881 "membar_release", |
850 "dmb ish", |
882 "dmb ish", |
851 useCompressedOops ? "atomic_xchgw? " : "atomic_xchg ", |
883 useCompressedOops ? "atomic_xchgw? " : "atomic_xchg ", |
852 "membar_volatile", |
884 "membar_acquire", |
853 "dmb ish", |
885 "dmb ish", |
854 "strb", |
886 "ret", |
855 "membar_acquire", |
887 "membar_volatile", |
856 "dmb ish", |
888 "dmb ish", |
857 "ret" |
889 "strb" |
858 }; |
890 }; |
859 break; |
891 break; |
860 case "CMSCondMark": |
892 case "CMSCondMark": |
861 // a card mark volatile barrier should be generated |
893 // a card mark volatile barrier should be generated |
862 // before the card mark strb from the StoreCM and the |
894 // before the card mark strb from the StoreCM and the |