hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp
changeset 347 df859fcca515
parent 1 489c9b5090e2
child 5547 f4b087cbb361
equal deleted inserted replaced
346:e13ccc474a28 347:df859fcca515
     1 /*
     1 /*
     2  * Copyright 1997-1999 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     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
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
    21  * have any questions.
    21  * have any questions.
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 // The disassembler prints out sparc code annotated
    25   static int pd_instruction_alignment() {
    26 // with Java specific information.
    26     return sizeof(int);
       
    27   }
    27 
    28 
    28 class Disassembler {
    29   static const char* pd_cpu_opts() {
    29 #ifndef PRODUCT
    30     return (VM_Version::v9_instructions_work()?
    30  private:
    31             (VM_Version::v8_instructions_work()? "" : "v9only") : "v8only");
    31   // points to the library.
    32   }
    32   static void*    _library;
       
    33   // points to the print_insn_sparc function.
       
    34   static dll_func _print_insn_sparc;
       
    35   // tries to load library and return whether it succedded.
       
    36   static bool load_library();
       
    37   // decodes one instruction and return the start of the next instruction.
       
    38   static address decode_instruction(address start, DisassemblerEnv* env);
       
    39 #endif
       
    40  public:
       
    41   static void decode(CodeBlob *cb,               outputStream* st = NULL) PRODUCT_RETURN;
       
    42   static void decode(nmethod* nm,                outputStream* st = NULL) PRODUCT_RETURN;
       
    43   static void decode(u_char* begin, u_char* end, outputStream* st = NULL) PRODUCT_RETURN;
       
    44 };
       
    45 
       
    46 //Reconciliation History
       
    47 // 1.9 98/04/29 10:45:51 disassembler_i486.hpp
       
    48 // 1.10 98/05/11 16:47:20 disassembler_i486.hpp
       
    49 // 1.12 99/06/22 16:37:37 disassembler_i486.hpp
       
    50 // 1.13 99/08/06 10:09:04 disassembler_i486.hpp
       
    51 //End