equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. |
2 * Copyright 1999-2009 Sun Microsystems, Inc. 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. |
275 |
275 |
276 int being_initialized_entry = __ offset(); |
276 int being_initialized_entry = __ offset(); |
277 |
277 |
278 if (_id == load_klass_id) { |
278 if (_id == load_klass_id) { |
279 // produce a copy of the load klass instruction for use by the being initialized case |
279 // produce a copy of the load klass instruction for use by the being initialized case |
|
280 #ifdef ASSERT |
280 address start = __ pc(); |
281 address start = __ pc(); |
281 Address addr = Address(_obj, address(NULL), oop_Relocation::spec(_oop_index)); |
282 #endif |
282 __ sethi(addr, true); |
283 AddressLiteral addrlit(NULL, oop_Relocation::spec(_oop_index)); |
283 __ add(addr, _obj, 0); |
284 __ patchable_set(addrlit, _obj); |
284 |
285 |
285 #ifdef ASSERT |
286 #ifdef ASSERT |
286 for (int i = 0; i < _bytes_to_copy; i++) { |
287 for (int i = 0; i < _bytes_to_copy; i++) { |
287 address ptr = (address)(_pc_start + i); |
288 address ptr = (address)(_pc_start + i); |
288 int a_byte = (*ptr) & 0xFF; |
289 int a_byte = (*ptr) & 0xFF; |