comparison src/cpu/sparc/vm/disassembler_sparc.hpp @ 100:c7c777385a15

6667042: PrintAssembly option does not work without special plugin Summary: remove old private plugin interface, simplify, rework old plugin to use unchanged Gnu sources Reviewed-by: kvn, rasbold
author jrose
date Wed, 02 Apr 2008 12:09:59 -0700
parents a61af66fc99e
children c18cbe5936b8
comparison
equal deleted inserted replaced
99:8a4ef4e001d3 100:c7c777385a15
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