equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2005, 2019, 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. |
857 ciField* field = s.get_field(ignored_will_link); |
857 ciField* field = s.get_field(ignored_will_link); |
858 BasicType field_type = field->type()->basic_type(); |
858 BasicType field_type = field->type()->basic_type(); |
859 if (s.cur_bc() != Bytecodes::_getstatic) { |
859 if (s.cur_bc() != Bytecodes::_getstatic) { |
860 set_method_escape(state.apop()); |
860 set_method_escape(state.apop()); |
861 } |
861 } |
862 if (field_type == T_OBJECT || field_type == T_ARRAY) { |
862 if (is_reference_type(field_type)) { |
863 state.apush(unknown_obj); |
863 state.apush(unknown_obj); |
864 } else if (type2size[field_type] == 1) { |
864 } else if (type2size[field_type] == 1) { |
865 state.spush(); |
865 state.spush(); |
866 } else { |
866 } else { |
867 state.lpush(); |
867 state.lpush(); |
871 case Bytecodes::_putstatic: |
871 case Bytecodes::_putstatic: |
872 case Bytecodes::_putfield: |
872 case Bytecodes::_putfield: |
873 { bool will_link; |
873 { bool will_link; |
874 ciField* field = s.get_field(will_link); |
874 ciField* field = s.get_field(will_link); |
875 BasicType field_type = field->type()->basic_type(); |
875 BasicType field_type = field->type()->basic_type(); |
876 if (field_type == T_OBJECT || field_type == T_ARRAY) { |
876 if (is_reference_type(field_type)) { |
877 set_global_escape(state.apop()); |
877 set_global_escape(state.apop()); |
878 } else if (type2size[field_type] == 1) { |
878 } else if (type2size[field_type] == 1) { |
879 state.spop(); |
879 state.spop(); |
880 } else { |
880 } else { |
881 state.lpop(); |
881 state.lpop(); |