arm: Support pac_key_* register operand for MRS/MSR in Armv8.1-M Mainline
[binutils-gdb.git] / gprofng / src / ClassFile.h
blob3bb7d828c8971892f9f7347f8c37826973fdd281
1 /* Copyright (C) 2021-2024 Free Software Foundation, Inc.
2 Contributed by Oracle.
4 This file is part of GNU Binutils.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, 51 Franklin Street - Fifth Floor, Boston,
19 MA 02110-1301, USA. */
21 #ifndef _CLASSFILE_H
22 #define _CLASSFILE_H
24 #include "Module.h"
26 class DataInputStream;
27 class BinaryConstantPool;
28 class JMethod;
29 class StringBuilder;
30 class ByteCodeInfo;
32 class ClassFile : public Module
34 public:
35 ClassFile ();
36 virtual ~ClassFile ();
37 virtual int readFile ();
38 virtual char *get_disasm (uint64_t inst_address, uint64_t end_address,
39 uint64_t start_address, uint64_t f_offset,
40 int64_t &inst_size);
41 static char *get_java_file_name (char *clname, bool classSuffix);
43 private:
45 void openFile (const char *fname);
46 char *get_opc_name (int op);
47 void readAttributes (int count);
48 void printConstant (StringBuilder *sb, int index);
49 long long printCodeSequence (StringBuilder *sb, uint64_t addr, DataInputStream *in);
51 unsigned char *cf_buf;
52 int64_t cf_bufsz;
53 int blanksCnt;
54 DataInputStream *input;
55 BinaryConstantPool *bcpool;
56 JMethod *cur_jmthd;
57 char *class_name;
58 char *class_filename;
59 char *source_name;
60 Vector<ByteCodeInfo *> *byteCodeInfo;
63 #endif