test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java
changeset 59326 851a389fc54d
parent 59053 ba6c248cae19
equal deleted inserted replaced
59325:3636bab5e81e 59326:851a389fc54d
   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