27 #define RESOLVE_HPP_ 1
50 #define RESOLVE_STATIC 0x0001
51 #define RESOLVE_PUTFIELD 0x0002
52 #define RESOLVE_SPECIAL 0x0004
105 #define SUBTYPESET_IS_EMPTY(stset) \
106 ((stset).subtyperefs == NULL)
108 #define UNRESOLVED_SUBTYPE_SET_EMTPY(stset) \
109 do { (stset).subtyperefs = NULL; } while(0)
141 #ifdef ENABLE_VERIFIER
156 #ifdef ENABLE_VERIFIER
183 #if defined(ENABLE_VERIFIER)
253 #ifdef ENABLE_VERIFIER
258 #endif // RESOLVE_HPP_
bool resolve_class_from_name(classinfo *referer, methodinfo *refmethod, Utf8String classname, resolve_mode_t mode, bool checkaccess, bool link, classinfo **result)
resolve_result_t resolve_method_verifier_checks(methodinfo *refmethod, constant_FMIref *methodref, methodinfo *mi, bool invokestatic)
constant_classref * classref
unresolved_field * resolve_create_unresolved_field(classinfo *referer, methodinfo *refmethod, instruction *iptr)
bool resolve_constrain_unresolved_method_params(jitdata *jd, unresolved_method *ref, methodinfo *refmethod, instruction *iptr)
classinfo * resolve_classref_eager_nonabstract(constant_classref *ref)
void unresolved_class_debug_dump(unresolved_class *ref, FILE *file)
unresolved_method * resolve_create_unresolved_method(classinfo *referer, methodinfo *refmethod, constant_FMIref *methodref, bool invokestatic, bool invokespecial)
resolve_result_t resolve_field_lazy(methodinfo *refmethod, constant_FMIref *fieldref)
bool resolve_classref(methodinfo *refmethod, constant_classref *ref, resolve_mode_t mode, bool checkaccess, bool link, classinfo **result)
void resolve_handle_pending_exception(bool throwError)
classinfo * resolve_class_eager_no_access_check(unresolved_class *ref)
bool resolve_field(unresolved_field *ref, resolve_mode_t mode, fieldinfo **result)
void unresolved_method_debug_dump(unresolved_method *ref, FILE *file)
methodinfo * referermethod
void unresolved_method_free(unresolved_method *ref)
bool resolve_constrain_unresolved_method_instance(unresolved_method *ref, methodinfo *refmethod, typeinfo_t *instanceti, bool invokespecial)
bool resolve_class_from_typedesc(typedesc *d, bool checkaccess, bool link, classinfo **result)
bool resolve_constrain_unresolved_method_params_stackbased(unresolved_method *ref, methodinfo *refmethod, typedescriptor_t *stack)
void unresolved_field_debug_dump(unresolved_field *ref, FILE *file)
void link(basicblock *v, basicblock *w)
resolve_result_t resolve_method_instance_type_checks(methodinfo *refmethod, methodinfo *mi, typeinfo_t *instanceti, bool invokespecial)
resolve_result_t resolve_method_lazy(methodinfo *refmethod, constant_FMIref *methodref, bool invokespecial)
bool resolve_class(unresolved_class *ref, resolve_mode_t mode, bool checkaccess, classinfo **result)
constant_FMIref * fieldref
alloc::list< PassInfo::IDTy >::type & stack
unresolved_subtype_set subtypeconstraints
Fieldref, Methodref and InterfaceMethodref.
bool resolve_method(unresolved_method *ref, resolve_mode_t mode, methodinfo **result)
resolve_result_t resolve_field_verifier_checks(methodinfo *refmethod, constant_FMIref *fieldref, classinfo *container, fieldinfo *fi, typeinfo_t *instanceti, typeinfo_t *valueti, bool isstatic, bool isput)
void unresolved_class_free(unresolved_class *ref)
void unresolved_subtype_set_debug_dump(unresolved_subtype_set *stset, FILE *file)
resolve_result_t resolve_method_param_type_checks_stackbased(methodinfo *refmethod, methodinfo *mi, bool invokestatic, typedescriptor_t *stack)
constant_FMIref * methodref
fieldinfo * resolve_field_eager(unresolved_field *ref)
classinfo * resolve_class_eager(unresolved_class *ref)
methodinfo * resolve_method_eager(unresolved_method *ref)
classref_or_classinfo * subtyperefs
bool resolve_classref_or_classinfo(methodinfo *refmethod, classref_or_classinfo cls, resolve_mode_t mode, bool checkaccess, bool link, classinfo **result)
unresolved_subtype_set * paramconstraints
unresolved_class * create_unresolved_class(methodinfo *refmethod, constant_classref *classref, typeinfo_t *valuetype)
classinfo * resolve_classref_eager(constant_classref *ref)
unresolved_subtype_set instancetypes
methodinfo * referermethod
classinfo * resolve_classref_or_classinfo_eager(classref_or_classinfo cls, bool checkaccess)
bool resolve_method_loading_constraints(classinfo *referer, methodinfo *mi)
resolve_result_t resolve_method_param_type_checks(jitdata *jd, methodinfo *refmethod, instruction *iptr, methodinfo *mi, bool invokestatic)
unresolved_subtype_set instancetypes
unresolved_subtype_set valueconstraints
bool resolve_constrain_unresolved_field(unresolved_field *ref, classinfo *referer, methodinfo *refmethod, typeinfo_t *instanceti, typeinfo_t *valueti)
methodinfo * referermethod
void unresolved_field_free(unresolved_field *ref)