-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgcj_interface.h
41 lines (35 loc) · 1.55 KB
/
gcj_interface.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef GCJ_INTERFACE_H
#define GCJ_INTERFACE_H
#include <libfirm/firm.h>
#include "class_file.h"
extern ident *superobject_ident;
extern bool create_jcr_segment;
void gcji_init(void);
void gcji_deinit(void);
void gcji_class_init(ir_type *type);
ir_node *gcji_allocate_object(ir_type *type);
ir_node *gcji_allocate_array(ir_type *eltype, ir_node *count);
ir_entity *gcji_emit_utf8_const(constant_t *constant, int mangle_slash);
ir_node *gcji_new_string(ir_entity *bytes);
ir_node *gcji_new_multiarray(ir_node *array_class_ref, unsigned dims,
ir_node **sizes);
ir_entity *gcji_get_rtti_entity(ir_type *classtype);
ir_node *gcji_get_runtime_classinfo(ir_type *type);
void gcji_create_rtti_entity(ir_type *type);
void gcji_setup_rtti_entity(class_t *cls, ir_type *type);
ir_node *gcji_lookup_interface(ir_node *obptr, ir_type *iface, ir_entity *method, ir_graph *irg, ir_node *block, ir_node **mem);
void gcji_checkcast(ir_type *classtype, ir_node *objptr);
void gcji_create_vtable_entity(ir_type *type);
void gcji_set_java_lang_class(ir_type *type);
void gcji_set_java_lang_object(ir_type *type);
void gcji_add_java_lang_class_fields(ir_type *type);
void gcji_create_array_type(void);
ir_entity *gcji_get_abstract_method_entity(void);
void init_rta_callbacks(void);
void deinit_rta_callbacks(void);
ir_entity *detect_call(ir_node *call);
/**
* Returns a node for the address of the data of an array object.
*/
ir_node *gcji_array_data_addr(ir_node *addr);
#endif