comparison src/cpu/x86/vm/disassembler_x86.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 intel 386 code annotated 25 static int pd_instruction_alignment() {
26 // with Java specific information. 26 return 1;
27 }
27 28
28 class Disassembler { 29 static const char* pd_cpu_opts() {
29 #ifndef PRODUCT 30 return "";
30 private: 31 }
31 typedef address (*decode_func)(address start, DisassemblerEnv* env);
32 // points the library.
33 static void* _library;
34 // points to the decode function.
35 static decode_func _decode_instruction;
36 // tries to load library and return whether it succedded.
37 static bool load_library();
38 // decodes one instruction and return the start of the next instruction.
39 static address decode_instruction(address start, DisassemblerEnv* env);
40 #endif
41 public:
42 static void decode(CodeBlob *cb, outputStream* st = NULL) PRODUCT_RETURN;
43 static void decode(nmethod* nm, outputStream* st = NULL) PRODUCT_RETURN;
44 static void decode(u_char* begin, u_char* end, outputStream* st = NULL) PRODUCT_RETURN;
45 };