27 #define REPLACE_HPP_ 1
44 #if defined(ENABLE_REPLACEMENT)
48 #define RPLALLOC_STACK -1 // allocation info for a stack variable
49 #define RPLALLOC_PARAM -2 // allocation info for a call parameter
50 #define RPLALLOC_SYNC -3 // allocation info for a synchronization slot
63 #error value of INMEMORY is too big to fit in rplalloc.flags
67 #define RPLPOINT_CHECK(type) , rplpoint::TYPE_##type
68 #define RPLPOINT_CHECK_BB(bptr) , (bptr)->type
70 #define RPLPOINT_CHECK(type)
71 #define RPLPOINT_CHECK_BB(bptr)
95 FLAG_TRAPPABLE = 0x01,
96 FLAG_COUNTDOWN = 0x02,
97 FLAG_DEOPTIMIZE = 0x04,
107 unsigned int regalloccount:20;
109 unsigned int flags:8;
110 u1 *patch_target_addr;
117 union replace_val_t {
133 struct sourceframe_t {
141 replace_val_t instance;
143 replace_val_t *javastack;
147 replace_val_t *javalocals;
151 replace_val_t *syncslots;
168 struct sourcestate_t {
169 sourceframe_t *frames;
186 #if defined(ENABLE_JIT)
187 void md_patch_replacement_point(
u1 *
pc,
u1 *savedmcode,
bool revert);
200 OStream&
operator<<(OStream &
OS,
const sourceframe_t *frame);
201 OStream&
operator<<(OStream &
OS,
const sourceframe_t &frame);
203 OStream&
operator<<(OStream &
OS,
const sourcestate_t *ss);
204 OStream&
operator<<(OStream &
OS,
const sourcestate_t &ss);
208 #endif // ENABLE_REPLACEMENT
210 #endif // REPLACE_HPP_
void replace_free_replacement_points(codeinfo *code)
void replace_activate_replacement_points(codeinfo *code, bool mappable)
void replace_handle_deoptimization_trap(u1 *pc, executionstate_t *es)
void replace_deactivate_replacement_points(codeinfo *code)
JNIEnv jthread jmethodID method
Type
Types used internally by JITTED code.
OStream & operator<<(OStream &OS, const std::string &t)
bool regalloc(jitdata *jd)
bool replace_handle_replacement_trap(u1 *pc, executionstate_t *es)
void replace_handle_countdown_trap(u1 *pc, executionstate_t *es)