1472N/A * or visit www.oracle.com if you need additional information or have any
1879N/A#include "precompiled.hpp"
1879N/A#include "c1/c1_Compilation.hpp"
1879N/A#include "c1/c1_FrameMap.hpp"
1879N/A#include "c1/c1_Instruction.hpp"
1879N/A#include "c1/c1_LIRAssembler.hpp"
1879N/A#include "c1/c1_LIRGenerator.hpp"
1879N/A#include "c1/c1_Runtime1.hpp"
1879N/A#include "c1/c1_ValueStack.hpp"
1879N/A#include "ci/ciArray.hpp"
1879N/A#include "ci/ciObjArrayKlass.hpp"
1879N/A#include "ci/ciTypeArrayKlass.hpp"
1879N/A#include "runtime/sharedRuntime.hpp"
1879N/A#include "runtime/stubRoutines.hpp"
1879N/A#include "vmreg_sparc.inline.hpp"
0N/A if (!r->is_constant()) {
0N/A case addressTag:
0N/A if (needs_card_mark) {
0N/Avoid LIRGenerator::cmp_mem_int(LIR_Condition condition, LIR_Opr base, int disp, int c, CodeEmitInfo* info) {
0N/Avoid LIRGenerator::cmp_reg_mem(LIR_Condition condition, LIR_Opr reg, LIR_Opr base, int disp, BasicType type, CodeEmitInfo* info) {
0N/Avoid LIRGenerator::cmp_reg_mem(LIR_Condition condition, LIR_Opr reg, LIR_Opr base, LIR_Opr disp, BasicType type, CodeEmitInfo* info) {
2793N/A x->should_profile());
0N/A if (use_length) {
0N/A if (needs_range_check) {
0N/A if (needs_store_check) {
0N/A set_no_result(x);
0N/A if (x->needs_null_check()) {
0N/A LIR_Address* array_addr = emit_array_address(array.result(), index.result(), x->elt_type(), obj_store);
0N/A if (use_length) {
2793N/A __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info, x->profiled_method(), x->profiled_bci());
0N/A set_no_result(x);
0N/A if (x->needs_null_check()) {
0N/A set_no_result(x);
0N/A rlock_result(x);
0N/A default: ShouldNotReachHere();
0N/A rlock_result(x);
0N/A default: ShouldNotReachHere();
0N/A rlock_result(x);
0N/A if (is_div_rem) {
0N/A __ fcmp2int(left.result(), right.result(), reg, (code == Bytecodes::_fcmpl || code == Bytecodes::_dcmpl));
3752N/A LIR_Opr result = call_runtime(x->argument_at(0), x->argument_at(1), runtime_entry, x->type(), NULL);
0N/A set_no_result(x);
0N/A default: ShouldNotReachHere();
0N/A // in case of patching (i.e., object class is not yet loaded), we need to reexecute the instruction
0N/A // and before the obj is loaded (so x->obj()->item() is valid for creating a debug info location)
0N/A if (x->is_incompatible_class_change_check()) {
0N/A stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id, LIR_OprFact::illegalOpr, info_for_exception);
0N/A stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
0N/A // ensure the result register is not the input register because the result is initialized before the patching safepoint
0N/A } else if (tag == objectTag && yin->is_constant() && (yin->get_jobject_constant()->is_null_object())) {
0N/A set_no_result(x);
0N/A if (x->is_safepoint()) {