// needs to match StubLocations in Java code. // placeholder locations to be filled in by // the code gen code class StubLocations { public: enum Location : uint32_t {
TARGET_ADDRESS,
RETURN_BUFFER,
CAPTURED_STATE_BUFFER,
LOCATION_LIMIT
}; private:
VMStorage _locs[LOCATION_LIMIT]; public:
StubLocations();
class JavaCallingConvention : public CallingConventionClosure { public: int calling_convention(const BasicType* sig_bt, VMStorage* regs, int num_args) const override;
};
class NativeCallingConvention : public CallingConventionClosure {
GrowableArray<VMStorage> _input_regs; public:
NativeCallingConvention(const GrowableArray<VMStorage>& input_regs)
: _input_regs(input_regs) {}
int calling_convention(const BasicType* sig_bt, VMStorage* out_regs, int num_args) constoverride;
};
class RegSpiller {
GrowableArray<VMStorage> _regs; int _spill_size_bytes; public:
RegSpiller(const GrowableArray<VMStorage>& regs) : _regs(regs), _spill_size_bytes(compute_spill_area(regs)) {
}
staticint pd_reg_size(VMStorage reg); staticvoid pd_store_reg(MacroAssembler* masm, int offset, VMStorage reg); staticvoid pd_load_reg(MacroAssembler* masm, int offset, VMStorage reg);
};
struct Move {
VMStorage from;
VMStorage to;
};
class ArgumentShuffle { private:
GrowableArray<Move> _moves; int _out_arg_bytes; public:
ArgumentShuffle(
BasicType* in_sig_bt, int num_in_args,
BasicType* out_sig_bt, int num_out_args, const CallingConventionClosure* input_conv, const CallingConventionClosure* output_conv,
VMStorage shuffle_temp);
int out_arg_bytes() const { return _out_arg_bytes; } void generate(MacroAssembler* masm, VMStorage tmp, int in_stk_bias, int out_stk_bias, const StubLocations& locs) const {
pd_generate(masm, tmp, in_stk_bias, out_stk_bias, locs);
}
void print_on(outputStream* os) const; private: void pd_generate(MacroAssembler* masm, VMStorage tmp, int in_stk_bias, int out_stk_bias, const StubLocations& locs) const;
};
#endif// SHARE_PRIMS_FOREIGN_GLOBALS
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.5Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.