26 #ifndef _INSTRUCTION_HPP
27 #define _INSTRUCTION_HPP
135 #define INS_FLAG_ID_SHIFT 5
136 #define INS_FLAG_ID_MASK (~0 << INS_FLAG_ID_SHIFT)
150 #if SIZEOF_VOID_P == 8
162 #if SIZEOF_VOID_P == 4
165 #if defined(ENABLE_ESCAPE_REASON)
166 void *escape_reasons;
171 #define INSTRUCTION_STARTS_BASICBLOCK(iptr) \
172 ((iptr)->flags.bits & INS_FLAG_BASICBLOCK)
174 #define INSTRUCTION_IS_RESOLVED(iptr) \
175 (!((iptr)->flags.bits & INS_FLAG_UNRESOLVED))
177 #define INSTRUCTION_IS_UNRESOLVED(iptr) \
178 ((iptr)->flags.bits & INS_FLAG_UNRESOLVED)
180 #define INSTRUCTION_MUST_CHECK(iptr) \
181 ((iptr)->flags.bits & INS_FLAG_CHECK)
183 #define INSTRUCTION_GET_FIELDREF(iptr,fref) \
185 if (iptr->flags.bits & INS_FLAG_UNRESOLVED) \
186 fref = iptr->sx.s23.s3.uf->fieldref; \
188 fref = iptr->sx.s23.s3.fmiref; \
191 #define INSTRUCTION_GET_METHODREF(iptr,mref) \
193 if (iptr->flags.bits & INS_FLAG_UNRESOLVED) \
194 mref = iptr->sx.s23.s3.um->methodref; \
196 mref = iptr->sx.s23.s3.fmiref; \
199 #define INSTRUCTION_GET_METHODDESC(iptr, md) \
201 if (iptr->flags.bits & INS_FLAG_UNRESOLVED) \
202 md = iptr->sx.s23.s3.um->methodref->parseddesc.md; \
204 md = iptr->sx.s23.s3.fmiref->parseddesc.md; \
229 #if defined(ENABLE_REPLACEMENT)
256 #endif // _INSTRUCTION_HPP
static bool instruction_has_dst(const instruction *iptr)
struct builtintable_entry * bte
insinfo_inline * inlineinfo
methoddesc * instruction_call_site(const instruction *iptr)
Type
Types used internally by JITTED code.
Fieldref, Methodref and InterfaceMethodref.
int32_t * javalocals_start
union instruction::@12 sx
icmdtable_entry_t icmd_table[256]
branch_target_t jsrtarget
branch_target_t lookupdefault
java_handle_t * stringconst
struct instruction::@12::@13 s23
Type instruction_call_site_return_type(const instruction *iptr)