src/share/vm/opto/node.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6961690 Sdiff src/share/vm/opto

src/share/vm/opto/node.hpp

Print this page
rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
   1 /*
   2  * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


  56 class CountedLoopEndNode;
  57 class DecodeNNode;
  58 class EncodePNode;
  59 class FastLockNode;
  60 class FastUnlockNode;
  61 class IfNode;
  62 class InitializeNode;
  63 class JVMState;
  64 class JumpNode;
  65 class JumpProjNode;
  66 class LoadNode;
  67 class LoadStoreNode;
  68 class LockNode;
  69 class LoopNode;
  70 class MachCallDynamicJavaNode;
  71 class MachCallJavaNode;
  72 class MachCallLeafNode;
  73 class MachCallNode;
  74 class MachCallRuntimeNode;
  75 class MachCallStaticJavaNode;


  76 class MachIfNode;
  77 class MachNode;
  78 class MachNullCheckNode;
  79 class MachReturnNode;
  80 class MachSafePointNode;
  81 class MachSpillCopyNode;
  82 class MachTempNode;
  83 class Matcher;
  84 class MemBarNode;
  85 class MemNode;
  86 class MergeMemNode;
  87 class MulNode;
  88 class MultiNode;
  89 class MultiBranchNode;
  90 class NeverBranchNode;
  91 class Node;
  92 class Node_Array;
  93 class Node_List;
  94 class Node_Stack;
  95 class NullCheckNode;


 545         DEFINE_CLASS_ID(If,          MultiBranch, 1)
 546           DEFINE_CLASS_ID(CountedLoopEnd, If, 0)
 547         DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2)
 548       DEFINE_CLASS_ID(Start,       Multi, 2)
 549       DEFINE_CLASS_ID(MemBar,      Multi, 3)
 550         DEFINE_CLASS_ID(Initialize,    MemBar, 0)
 551 
 552     DEFINE_CLASS_ID(Mach,  Node, 1)
 553       DEFINE_CLASS_ID(MachReturn, Mach, 0)
 554         DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0)
 555           DEFINE_CLASS_ID(MachCall, MachSafePoint, 0)
 556             DEFINE_CLASS_ID(MachCallJava,         MachCall, 0)
 557               DEFINE_CLASS_ID(MachCallStaticJava,   MachCallJava, 0)
 558               DEFINE_CLASS_ID(MachCallDynamicJava,  MachCallJava, 1)
 559             DEFINE_CLASS_ID(MachCallRuntime,      MachCall, 1)
 560               DEFINE_CLASS_ID(MachCallLeaf,         MachCallRuntime, 0)
 561       DEFINE_CLASS_ID(MachSpillCopy, Mach, 1)
 562       DEFINE_CLASS_ID(MachNullCheck, Mach, 2)
 563       DEFINE_CLASS_ID(MachIf,        Mach, 3)
 564       DEFINE_CLASS_ID(MachTemp,      Mach, 4)


 565 
 566     DEFINE_CLASS_ID(Proj,  Node, 2)
 567       DEFINE_CLASS_ID(CatchProj, Proj, 0)
 568       DEFINE_CLASS_ID(JumpProj,  Proj, 1)
 569       DEFINE_CLASS_ID(IfTrue,    Proj, 2)
 570       DEFINE_CLASS_ID(IfFalse,   Proj, 3)
 571       DEFINE_CLASS_ID(Parm,      Proj, 4)
 572 
 573     DEFINE_CLASS_ID(Region, Node, 3)
 574       DEFINE_CLASS_ID(Loop, Region, 0)
 575         DEFINE_CLASS_ID(Root,        Loop, 0)
 576         DEFINE_CLASS_ID(CountedLoop, Loop, 1)
 577 
 578     DEFINE_CLASS_ID(Sub,   Node, 4)
 579       DEFINE_CLASS_ID(Cmp,   Sub, 0)
 580         DEFINE_CLASS_ID(FastLock,   Cmp, 0)
 581         DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
 582 
 583     DEFINE_CLASS_ID(Type,  Node, 5)
 584       DEFINE_CLASS_ID(Phi,   Type, 0)


 709   DEFINE_CLASS_QUERY(EncodeP)
 710   DEFINE_CLASS_QUERY(FastLock)
 711   DEFINE_CLASS_QUERY(FastUnlock)
 712   DEFINE_CLASS_QUERY(If)
 713   DEFINE_CLASS_QUERY(IfFalse)
 714   DEFINE_CLASS_QUERY(IfTrue)
 715   DEFINE_CLASS_QUERY(Initialize)
 716   DEFINE_CLASS_QUERY(Jump)
 717   DEFINE_CLASS_QUERY(JumpProj)
 718   DEFINE_CLASS_QUERY(Load)
 719   DEFINE_CLASS_QUERY(LoadStore)
 720   DEFINE_CLASS_QUERY(Lock)
 721   DEFINE_CLASS_QUERY(Loop)
 722   DEFINE_CLASS_QUERY(Mach)
 723   DEFINE_CLASS_QUERY(MachCall)
 724   DEFINE_CLASS_QUERY(MachCallDynamicJava)
 725   DEFINE_CLASS_QUERY(MachCallJava)
 726   DEFINE_CLASS_QUERY(MachCallLeaf)
 727   DEFINE_CLASS_QUERY(MachCallRuntime)
 728   DEFINE_CLASS_QUERY(MachCallStaticJava)


 729   DEFINE_CLASS_QUERY(MachIf)
 730   DEFINE_CLASS_QUERY(MachNullCheck)
 731   DEFINE_CLASS_QUERY(MachReturn)
 732   DEFINE_CLASS_QUERY(MachSafePoint)
 733   DEFINE_CLASS_QUERY(MachSpillCopy)
 734   DEFINE_CLASS_QUERY(MachTemp)
 735   DEFINE_CLASS_QUERY(Mem)
 736   DEFINE_CLASS_QUERY(MemBar)
 737   DEFINE_CLASS_QUERY(MergeMem)
 738   DEFINE_CLASS_QUERY(Mul)
 739   DEFINE_CLASS_QUERY(Multi)
 740   DEFINE_CLASS_QUERY(MultiBranch)
 741   DEFINE_CLASS_QUERY(Parm)
 742   DEFINE_CLASS_QUERY(PCTable)
 743   DEFINE_CLASS_QUERY(Phi)
 744   DEFINE_CLASS_QUERY(Proj)
 745   DEFINE_CLASS_QUERY(Region)
 746   DEFINE_CLASS_QUERY(Root)
 747   DEFINE_CLASS_QUERY(SafePoint)
 748   DEFINE_CLASS_QUERY(SafePointScalarObject)


   1 /*
   2  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


  56 class CountedLoopEndNode;
  57 class DecodeNNode;
  58 class EncodePNode;
  59 class FastLockNode;
  60 class FastUnlockNode;
  61 class IfNode;
  62 class InitializeNode;
  63 class JVMState;
  64 class JumpNode;
  65 class JumpProjNode;
  66 class LoadNode;
  67 class LoadStoreNode;
  68 class LockNode;
  69 class LoopNode;
  70 class MachCallDynamicJavaNode;
  71 class MachCallJavaNode;
  72 class MachCallLeafNode;
  73 class MachCallNode;
  74 class MachCallRuntimeNode;
  75 class MachCallStaticJavaNode;
  76 class MachConstantBaseNode;
  77 class MachConstantNode;
  78 class MachIfNode;
  79 class MachNode;
  80 class MachNullCheckNode;
  81 class MachReturnNode;
  82 class MachSafePointNode;
  83 class MachSpillCopyNode;
  84 class MachTempNode;
  85 class Matcher;
  86 class MemBarNode;
  87 class MemNode;
  88 class MergeMemNode;
  89 class MulNode;
  90 class MultiNode;
  91 class MultiBranchNode;
  92 class NeverBranchNode;
  93 class Node;
  94 class Node_Array;
  95 class Node_List;
  96 class Node_Stack;
  97 class NullCheckNode;


 547         DEFINE_CLASS_ID(If,          MultiBranch, 1)
 548           DEFINE_CLASS_ID(CountedLoopEnd, If, 0)
 549         DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2)
 550       DEFINE_CLASS_ID(Start,       Multi, 2)
 551       DEFINE_CLASS_ID(MemBar,      Multi, 3)
 552         DEFINE_CLASS_ID(Initialize,    MemBar, 0)
 553 
 554     DEFINE_CLASS_ID(Mach,  Node, 1)
 555       DEFINE_CLASS_ID(MachReturn, Mach, 0)
 556         DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0)
 557           DEFINE_CLASS_ID(MachCall, MachSafePoint, 0)
 558             DEFINE_CLASS_ID(MachCallJava,         MachCall, 0)
 559               DEFINE_CLASS_ID(MachCallStaticJava,   MachCallJava, 0)
 560               DEFINE_CLASS_ID(MachCallDynamicJava,  MachCallJava, 1)
 561             DEFINE_CLASS_ID(MachCallRuntime,      MachCall, 1)
 562               DEFINE_CLASS_ID(MachCallLeaf,         MachCallRuntime, 0)
 563       DEFINE_CLASS_ID(MachSpillCopy,    Mach, 1)
 564       DEFINE_CLASS_ID(MachNullCheck,    Mach, 2)
 565       DEFINE_CLASS_ID(MachIf,           Mach, 3)
 566       DEFINE_CLASS_ID(MachTemp,         Mach, 4)
 567       DEFINE_CLASS_ID(MachConstantBase, Mach, 5)
 568       DEFINE_CLASS_ID(MachConstant,     Mach, 6)
 569 
 570     DEFINE_CLASS_ID(Proj,  Node, 2)
 571       DEFINE_CLASS_ID(CatchProj, Proj, 0)
 572       DEFINE_CLASS_ID(JumpProj,  Proj, 1)
 573       DEFINE_CLASS_ID(IfTrue,    Proj, 2)
 574       DEFINE_CLASS_ID(IfFalse,   Proj, 3)
 575       DEFINE_CLASS_ID(Parm,      Proj, 4)
 576 
 577     DEFINE_CLASS_ID(Region, Node, 3)
 578       DEFINE_CLASS_ID(Loop, Region, 0)
 579         DEFINE_CLASS_ID(Root,        Loop, 0)
 580         DEFINE_CLASS_ID(CountedLoop, Loop, 1)
 581 
 582     DEFINE_CLASS_ID(Sub,   Node, 4)
 583       DEFINE_CLASS_ID(Cmp,   Sub, 0)
 584         DEFINE_CLASS_ID(FastLock,   Cmp, 0)
 585         DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
 586 
 587     DEFINE_CLASS_ID(Type,  Node, 5)
 588       DEFINE_CLASS_ID(Phi,   Type, 0)


 713   DEFINE_CLASS_QUERY(EncodeP)
 714   DEFINE_CLASS_QUERY(FastLock)
 715   DEFINE_CLASS_QUERY(FastUnlock)
 716   DEFINE_CLASS_QUERY(If)
 717   DEFINE_CLASS_QUERY(IfFalse)
 718   DEFINE_CLASS_QUERY(IfTrue)
 719   DEFINE_CLASS_QUERY(Initialize)
 720   DEFINE_CLASS_QUERY(Jump)
 721   DEFINE_CLASS_QUERY(JumpProj)
 722   DEFINE_CLASS_QUERY(Load)
 723   DEFINE_CLASS_QUERY(LoadStore)
 724   DEFINE_CLASS_QUERY(Lock)
 725   DEFINE_CLASS_QUERY(Loop)
 726   DEFINE_CLASS_QUERY(Mach)
 727   DEFINE_CLASS_QUERY(MachCall)
 728   DEFINE_CLASS_QUERY(MachCallDynamicJava)
 729   DEFINE_CLASS_QUERY(MachCallJava)
 730   DEFINE_CLASS_QUERY(MachCallLeaf)
 731   DEFINE_CLASS_QUERY(MachCallRuntime)
 732   DEFINE_CLASS_QUERY(MachCallStaticJava)
 733   DEFINE_CLASS_QUERY(MachConstantBase)
 734   DEFINE_CLASS_QUERY(MachConstant)
 735   DEFINE_CLASS_QUERY(MachIf)
 736   DEFINE_CLASS_QUERY(MachNullCheck)
 737   DEFINE_CLASS_QUERY(MachReturn)
 738   DEFINE_CLASS_QUERY(MachSafePoint)
 739   DEFINE_CLASS_QUERY(MachSpillCopy)
 740   DEFINE_CLASS_QUERY(MachTemp)
 741   DEFINE_CLASS_QUERY(Mem)
 742   DEFINE_CLASS_QUERY(MemBar)
 743   DEFINE_CLASS_QUERY(MergeMem)
 744   DEFINE_CLASS_QUERY(Mul)
 745   DEFINE_CLASS_QUERY(Multi)
 746   DEFINE_CLASS_QUERY(MultiBranch)
 747   DEFINE_CLASS_QUERY(Parm)
 748   DEFINE_CLASS_QUERY(PCTable)
 749   DEFINE_CLASS_QUERY(Phi)
 750   DEFINE_CLASS_QUERY(Proj)
 751   DEFINE_CLASS_QUERY(Region)
 752   DEFINE_CLASS_QUERY(Root)
 753   DEFINE_CLASS_QUERY(SafePoint)
 754   DEFINE_CLASS_QUERY(SafePointScalarObject)


src/share/vm/opto/node.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File