src/os/solaris/dtrace/generateJvmOffsets.cpp

Print this page


   1 /*
   2  * Copyright (c) 2003, 2012, 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  *


  38 #define protected public
  39 
  40 #include <proc_service.h>
  41 #include "code/codeBlob.hpp"
  42 #include "code/nmethod.hpp"
  43 #include "code/pcDesc.hpp"
  44 #include "gc_interface/collectedHeap.hpp"
  45 #include "memory/heap.hpp"
  46 #include "memory/memRegion.hpp"
  47 #include "memory/universe.hpp"
  48 #include "oops/constMethod.hpp"
  49 #include "oops/klass.hpp"
  50 #include "oops/method.hpp"
  51 #include "oops/oop.hpp"
  52 #include "oops/symbol.hpp"
  53 #include "runtime/virtualspace.hpp"
  54 #include "runtime/vmStructs.hpp"
  55 #include "utilities/accessFlags.hpp"
  56 #include "utilities/globalDefinitions.hpp"
  57 #ifdef COMPILER1
  58 #if defined(DEBUG) || defined(FASTDEBUG)
  59 
  60 /*
  61  * To avoid the most part of potential link errors
  62  * we link this program with -z nodefs .
  63  *
  64  * But for 'debug1' and 'fastdebug1' we still have to provide
  65  * a particular workaround for the following symbols bellow.
  66  * It will be good to find out a generic way in the future.
  67  */
  68 
  69 #pragma weak tty
  70 #pragma weak CMSExpAvgFactor
  71 
  72 #if defined(i386) || defined(__i386) || defined(__amd64)
  73 #pragma weak noreg
  74 #endif /* i386 */
  75 
  76 LIR_Opr LIR_OprFact::illegalOpr = (LIR_Opr) 0;
  77 
  78 address StubRoutines::_call_stub_return_address = NULL;
  79 
  80 StubQueue* AbstractInterpreter::_code = NULL;
  81 
  82 #endif /* defined(DEBUG) || defined(FASTDEBUG) */
  83 #endif /* COMPILER1 */
  84 
  85 #define GEN_OFFS(Type,Name)                             \
  86   switch(gen_variant) {                                 \
  87   case GEN_OFFSET:                                      \
  88     printf("#define OFFSET_%-33s %d\n",                 \
  89             #Type #Name, offset_of(Type, Name));        \
  90     break;                                              \
  91   case GEN_INDEX:                                       \
  92     printf("#define IDX_OFFSET_%-33s %d\n",             \
  93             #Type #Name, index++);                      \
  94     break;                                              \
  95   case GEN_TABLE:                                       \
  96     printf("\tOFFSET_%s,\n", #Type #Name);              \
  97     break;                                              \
  98   }
  99 
 100 #define GEN_SIZE(Type)                                  \
 101   switch(gen_variant) {                                 \
 102   case GEN_OFFSET:                                      \


   1 /*
   2  * Copyright (c) 2003, 2013, 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  *


  38 #define protected public
  39 
  40 #include <proc_service.h>
  41 #include "code/codeBlob.hpp"
  42 #include "code/nmethod.hpp"
  43 #include "code/pcDesc.hpp"
  44 #include "gc_interface/collectedHeap.hpp"
  45 #include "memory/heap.hpp"
  46 #include "memory/memRegion.hpp"
  47 #include "memory/universe.hpp"
  48 #include "oops/constMethod.hpp"
  49 #include "oops/klass.hpp"
  50 #include "oops/method.hpp"
  51 #include "oops/oop.hpp"
  52 #include "oops/symbol.hpp"
  53 #include "runtime/virtualspace.hpp"
  54 #include "runtime/vmStructs.hpp"
  55 #include "utilities/accessFlags.hpp"
  56 #include "utilities/globalDefinitions.hpp"
  57 #ifdef COMPILER1
  58 #ifdef ASSERT
  59 
  60 /*
  61  * To avoid the most part of potential link errors
  62  * we link this program with -z nodefs .
  63  *
  64  * But for 'debug1' and 'fastdebug1' we still have to provide
  65  * a particular workaround for the following symbols below.
  66  * It will be good to find out a generic way in the future.
  67  */
  68 
  69 #pragma weak tty
  70 #pragma weak CMSExpAvgFactor
  71 
  72 #if defined(i386) || defined(__i386) || defined(__amd64)
  73 #pragma weak noreg
  74 #endif /* i386 */
  75 
  76 LIR_Opr LIR_OprFact::illegalOpr = (LIR_Opr) 0;
  77 
  78 address StubRoutines::_call_stub_return_address = NULL;
  79 
  80 StubQueue* AbstractInterpreter::_code = NULL;
  81 
  82 #endif /* ASSERT */
  83 #endif /* COMPILER1 */
  84 
  85 #define GEN_OFFS(Type,Name)                             \
  86   switch(gen_variant) {                                 \
  87   case GEN_OFFSET:                                      \
  88     printf("#define OFFSET_%-33s %d\n",                 \
  89             #Type #Name, offset_of(Type, Name));        \
  90     break;                                              \
  91   case GEN_INDEX:                                       \
  92     printf("#define IDX_OFFSET_%-33s %d\n",             \
  93             #Type #Name, index++);                      \
  94     break;                                              \
  95   case GEN_TABLE:                                       \
  96     printf("\tOFFSET_%s,\n", #Type #Name);              \
  97     break;                                              \
  98   }
  99 
 100 #define GEN_SIZE(Type)                                  \
 101   switch(gen_variant) {                                 \
 102   case GEN_OFFSET:                                      \