1 /* |
1 /* |
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2012, 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. |
1541 // it is possible that p1 will have a type like Foo*[int+]:NotNull*+any. |
1541 // it is possible that p1 will have a type like Foo*[int+]:NotNull*+any. |
1542 // In fact, that could have been the original type of p1, and p1 could have |
1542 // In fact, that could have been the original type of p1, and p1 could have |
1543 // had an original form like p1:(AddP x x (LShiftL quux 3)), where the |
1543 // had an original form like p1:(AddP x x (LShiftL quux 3)), where the |
1544 // expression (LShiftL quux 3) independently optimized to the constant 8. |
1544 // expression (LShiftL quux 3) independently optimized to the constant 8. |
1545 if ((t->isa_int() == NULL) && (t->isa_long() == NULL) |
1545 if ((t->isa_int() == NULL) && (t->isa_long() == NULL) |
|
1546 && (_type->isa_vect() == NULL) |
1546 && Opcode() != Op_LoadKlass && Opcode() != Op_LoadNKlass) { |
1547 && Opcode() != Op_LoadKlass && Opcode() != Op_LoadNKlass) { |
1547 // t might actually be lower than _type, if _type is a unique |
1548 // t might actually be lower than _type, if _type is a unique |
1548 // concrete subclass of abstract class t. |
1549 // concrete subclass of abstract class t. |
1549 // Make sure the reference is not into the header, by comparing |
1550 // Make sure the reference is not into the header, by comparing |
1550 // the offset against the offset of the start of the array's data. |
1551 // the offset against the offset of the start of the array's data. |