1014 , _value(value), _profiled_method(NULL), _profiled_bci(0), _check_boolean(check_boolean) 1015 { 1016 set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object())); 1017 set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object())); 1018 ASSERT_VALUES 1019 pin(); 1020 } 1021 1022 // accessors 1023 Value value() const { return _value; } 1024 bool needs_write_barrier() const { return check_flag(NeedsWriteBarrierFlag); } 1025 bool needs_store_check() const { return check_flag(NeedsStoreCheckFlag); } 1026 bool check_boolean() const { return _check_boolean; } 1027 // Helpers for MethodData* profiling 1028 void set_should_profile(bool value) { set_flag(ProfileMDOFlag, value); } 1029 void set_profiled_method(ciMethod* method) { _profiled_method = method; } 1030 void set_profiled_bci(int bci) { _profiled_bci = bci; } 1031 bool should_profile() const { return check_flag(ProfileMDOFlag); } 1032 ciMethod* profiled_method() const { return _profiled_method; } 1033 int profiled_bci() const { return _profiled_bci; } 1034 // generic 1035 virtual void input_values_do(ValueVisitor* f) { AccessIndexed::input_values_do(f); f->visit(&_value); } 1036 }; 1037 1038 1039 LEAF(NegateOp, Instruction) 1040 private: 1041 Value _x; 1042 1043 public: 1044 // creation 1045 NegateOp(Value x) : Instruction(x->type()->base()), _x(x) { 1046 ASSERT_VALUES 1047 } 1048 1049 // accessors 1050 Value x() const { return _x; } 1051 1052 // generic 1053 virtual void input_values_do(ValueVisitor* f) { f->visit(&_x); } | 1014 , _value(value), _profiled_method(NULL), _profiled_bci(0), _check_boolean(check_boolean) 1015 { 1016 set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object())); 1017 set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object())); 1018 ASSERT_VALUES 1019 pin(); 1020 } 1021 1022 // accessors 1023 Value value() const { return _value; } 1024 bool needs_write_barrier() const { return check_flag(NeedsWriteBarrierFlag); } 1025 bool needs_store_check() const { return check_flag(NeedsStoreCheckFlag); } 1026 bool check_boolean() const { return _check_boolean; } 1027 // Helpers for MethodData* profiling 1028 void set_should_profile(bool value) { set_flag(ProfileMDOFlag, value); } 1029 void set_profiled_method(ciMethod* method) { _profiled_method = method; } 1030 void set_profiled_bci(int bci) { _profiled_bci = bci; } 1031 bool should_profile() const { return check_flag(ProfileMDOFlag); } 1032 ciMethod* profiled_method() const { return _profiled_method; } 1033 int profiled_bci() const { return _profiled_bci; } 1034 // Flattened array support 1035 bool is_exact_flattened_array_store() const; 1036 // generic 1037 virtual void input_values_do(ValueVisitor* f) { AccessIndexed::input_values_do(f); f->visit(&_value); } 1038 }; 1039 1040 1041 LEAF(NegateOp, Instruction) 1042 private: 1043 Value _x; 1044 1045 public: 1046 // creation 1047 NegateOp(Value x) : Instruction(x->type()->base()), _x(x) { 1048 ASSERT_VALUES 1049 } 1050 1051 // accessors 1052 Value x() const { return _x; } 1053 1054 // generic 1055 virtual void input_values_do(ValueVisitor* f) { f->visit(&_x); } |