comparison src/share/vm/c1/c1_Instruction.hpp @ 23842:d109bda16490

Merge
author asaha
date Tue, 05 Apr 2016 08:55:39 -0700
parents 32b682649973
children 0b85ccd62409
comparison
equal deleted inserted replaced
23834:b5b3db42efca 23842:d109bda16490
1 /* 1 /*
2 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
974 private: 974 private:
975 Value _value; 975 Value _value;
976 976
977 ciMethod* _profiled_method; 977 ciMethod* _profiled_method;
978 int _profiled_bci; 978 int _profiled_bci;
979 public: 979 bool _check_boolean;
980 // creation 980
981 StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before) 981 public:
982 // creation
983 StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before, bool check_boolean)
982 : AccessIndexed(array, index, length, elt_type, state_before) 984 : AccessIndexed(array, index, length, elt_type, state_before)
983 , _value(value), _profiled_method(NULL), _profiled_bci(0) 985 , _value(value), _profiled_method(NULL), _profiled_bci(0), _check_boolean(check_boolean)
984 { 986 {
985 set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object())); 987 set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object()));
986 set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object())); 988 set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object()));
987 ASSERT_VALUES 989 ASSERT_VALUES
988 pin(); 990 pin();
990 992
991 // accessors 993 // accessors
992 Value value() const { return _value; } 994 Value value() const { return _value; }
993 bool needs_write_barrier() const { return check_flag(NeedsWriteBarrierFlag); } 995 bool needs_write_barrier() const { return check_flag(NeedsWriteBarrierFlag); }
994 bool needs_store_check() const { return check_flag(NeedsStoreCheckFlag); } 996 bool needs_store_check() const { return check_flag(NeedsStoreCheckFlag); }
997 bool check_boolean() const { return _check_boolean; }
995 // Helpers for MethodData* profiling 998 // Helpers for MethodData* profiling
996 void set_should_profile(bool value) { set_flag(ProfileMDOFlag, value); } 999 void set_should_profile(bool value) { set_flag(ProfileMDOFlag, value); }
997 void set_profiled_method(ciMethod* method) { _profiled_method = method; } 1000 void set_profiled_method(ciMethod* method) { _profiled_method = method; }
998 void set_profiled_bci(int bci) { _profiled_bci = bci; } 1001 void set_profiled_bci(int bci) { _profiled_bci = bci; }
999 bool should_profile() const { return check_flag(ProfileMDOFlag); } 1002 bool should_profile() const { return check_flag(ProfileMDOFlag); }