CACAO
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
source
cacao
src
vm
jit
exceptiontable.hpp
Go to the documentation of this file.
1
/* src/vm/jit/exceptiontable.hpp - method exception table
2
3
Copyright (C) 2007
4
CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5
6
This file is part of CACAO.
7
8
This program is free software; you can redistribute it and/or
9
modify it under the terms of the GNU General Public License as
10
published by the Free Software Foundation; either version 2, or (at
11
your option) any later version.
12
13
This program is distributed in the hope that it will be useful, but
14
WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
General Public License for more details.
17
18
You should have received a copy of the GNU General Public License
19
along with this program; if not, write to the Free Software
20
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21
02110-1301, USA.
22
23
*/
24
25
26
#ifndef EXCEPTIONTABLE_HPP_
27
#define EXCEPTIONTABLE_HPP_ 1
28
29
#include "config.h"
30
31
#include <stdint.h>
32
33
#include "
vm/references.hpp
"
34
35
struct
jitdata
;
36
struct
codeinfo
;
37
38
/* forward typedefs ***********************************************************/
39
40
struct
exceptiontable_t
;
41
struct
exceptiontable_entry_t
;
42
43
44
/* exceptiontable_t ***********************************************************/
45
46
struct
exceptiontable_t
{
47
int32_t
length
;
48
exceptiontable_entry_t
*
entries
;
49
};
50
51
52
/* exceptiontable_entry_t *****************************************************/
53
54
struct
exceptiontable_entry_t
{
55
void
*
endpc
;
56
void
*
startpc
;
57
void
*
handlerpc
;
58
classref_or_classinfo
catchtype
;
59
};
60
61
62
/* function prototypes ********************************************************/
63
64
void
exceptiontable_create
(
jitdata
*jd);
65
void
exceptiontable_free
(
codeinfo
*code);
66
67
#if !defined(NDEBUG)
68
void
exceptiontable_print
(
codeinfo
*code);
69
#endif
70
71
#endif // EXCEPTIONTABLE_HPP_
72
73
74
/*
75
* These are local overrides for various environment variables in Emacs.
76
* Please do not remove this and leave it at the end of the file, where
77
* Emacs will automagically detect them.
78
* ---------------------------------------------------------------------
79
* Local variables:
80
* mode: c++
81
* indent-tabs-mode: t
82
* c-basic-offset: 4
83
* tab-width: 4
84
* End:
85
* vim:noexpandtab:sw=4:ts=4:
86
*/
jitdata
Definition:
jit.hpp:126
exceptiontable_t
Definition:
exceptiontable.hpp:46
exceptiontable_entry_t::handlerpc
void * handlerpc
Definition:
exceptiontable.hpp:57
exceptiontable_entry_t::startpc
void * startpc
Definition:
exceptiontable.hpp:56
codeinfo
Definition:
code.hpp:74
classref_or_classinfo
Definition:
references.hpp:61
exceptiontable_free
void exceptiontable_free(codeinfo *code)
Definition:
exceptiontable.cpp:109
exceptiontable_entry_t::endpc
void * endpc
Definition:
exceptiontable.hpp:55
exceptiontable_print
void exceptiontable_print(codeinfo *code)
Definition:
exceptiontable.cpp:152
exceptiontable_entry_t
Definition:
exceptiontable.hpp:54
exceptiontable_create
void exceptiontable_create(jitdata *jd)
Definition:
exceptiontable.cpp:45
references.hpp
exceptiontable_entry_t::catchtype
classref_or_classinfo catchtype
Definition:
exceptiontable.hpp:58
exceptiontable_t::length
int32_t length
Definition:
exceptiontable.hpp:47
exceptiontable_t::entries
exceptiontable_entry_t * entries
Definition:
exceptiontable.hpp:48
Generated on Fri Aug 4 2017 03:01:53 for CACAO by
1.8.5