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;
169 #if defined(ENABLE_COMPILER2)
183 #define INSTRUCTION_STARTS_BASICBLOCK(iptr) \
184 ((iptr)->flags.bits & INS_FLAG_BASICBLOCK)
186 #define INSTRUCTION_IS_RESOLVED(iptr) \
187 (!((iptr)->flags.bits & INS_FLAG_UNRESOLVED))
189 #define INSTRUCTION_IS_UNRESOLVED(iptr) \
190 ((iptr)->flags.bits & INS_FLAG_UNRESOLVED)
192 #define INSTRUCTION_MUST_CHECK(iptr) \
193 ((iptr)->flags.bits & INS_FLAG_CHECK)
195 #define INSTRUCTION_GET_FIELDREF(iptr,fref) \
197 if (iptr->flags.bits & INS_FLAG_UNRESOLVED) \
198 fref = iptr->sx.s23.s3.uf->fieldref; \
200 fref = iptr->sx.s23.s3.fmiref; \
203 #define INSTRUCTION_GET_METHODREF(iptr,mref) \
205 if (iptr->flags.bits & INS_FLAG_UNRESOLVED) \
206 mref = iptr->sx.s23.s3.um->methodref; \
208 mref = iptr->sx.s23.s3.fmiref; \
211 #define INSTRUCTION_GET_METHODDESC(iptr, md) \
213 if (iptr->flags.bits & INS_FLAG_UNRESOLVED) \
214 md = iptr->sx.s23.s3.um->methodref->parseddesc.md; \
216 md = iptr->sx.s23.s3.fmiref->parseddesc.md; \
241 #if defined(ENABLE_COMPILER2)
301 #endif // _INSTRUCTION_HPP
static bool instruction_has_side_effects(const instruction *iptr)
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)