Mercurial > hg > graal-jvmci-8
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); } |