src/share/vm/asm/assembler.inline.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6961690 Cdiff src/share/vm/asm/assembler.inline.hpp
src/share/vm/asm/assembler.inline.hpp
Print this page
rev 1838 : 6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by:
*** 1,7 ****
/*
! * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 103,135 ****
}
inline void Label::bind_loc(int pos, int sect) {
bind_loc(CodeBuffer::locator(pos, sect));
}
-
- address AbstractAssembler::address_constant(Label& L) {
- address c = NULL;
- address ptr = start_a_const(sizeof(c), sizeof(c));
- if (ptr != NULL) {
- relocate(Relocation::spec_simple(relocInfo::internal_word_type));
- *(address*)ptr = c = code_section()->target(L, ptr);
- _code_pos = ptr + sizeof(c);
- end_a_const();
- }
- return ptr;
- }
-
- address AbstractAssembler::address_table_constant(GrowableArray<Label*> labels) {
- int addressSize = sizeof(address);
- int sizeLabel = addressSize * labels.length();
- address ptr = start_a_const(sizeLabel, addressSize);
-
- if (ptr != NULL) {
- address *labelLoc = (address*)ptr;
- for (int i=0; i < labels.length(); i++) {
- emit_address(code_section()->target(*labels.at(i), (address)&labelLoc[i]));
- code_section()->relocate((address)&labelLoc[i], relocInfo::internal_word_type);
- }
- end_a_const();
- }
- return ptr;
- }
--- 103,107 ----
src/share/vm/asm/assembler.inline.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File