Created
July 20, 2023 00:33
-
-
Save JohnTortugo/5efef342fa2b5b712abeed461f9dbec8 to your computer and use it in GitHub Desktop.
Investigate RAM issue on Big-endians
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/hotspot/share/code/debugInfo.cpp b/src/hotspot/share/code/debugInfo.cpp | |
index 55d12448deb..404df71a4a6 100644 | |
--- a/src/hotspot/share/code/debugInfo.cpp | |
+++ b/src/hotspot/share/code/debugInfo.cpp | |
@@ -243,7 +243,10 @@ void ObjectValue::print_fields_on(outputStream* st) const { | |
ObjectValue* ObjectMergeValue::select(frame& fr, RegisterMap& reg_map) { | |
StackValue* sv_selector = StackValue::create_stack_value(&fr, ®_map, _selector); | |
jint selector = sv_selector->get_int(); | |
- | |
+ tty->print_cr("_selector is location: %d",_selector->is_location()); | |
+ tty->print_cr("_selector is constant_int: %d", _selector->is_constant_int()); | |
+ tty->print("_selector -> "); _selector->print_on(tty); tty->cr(); | |
+ | |
// If the selector is '-1' it means that execution followed the path | |
// where no scalar replacement happened. | |
// Otherwise, it is the index in _possible_objects array that holds | |
@@ -260,6 +263,7 @@ ObjectValue* ObjectMergeValue::select(frame& fr, RegisterMap& reg_map) { | |
return nullptr; | |
} else { | |
assert(selector < _possible_objects.length(), "sanity"); | |
+ tty->print_cr("Selector after deserializing: %d", selector); | |
_selected = (ObjectValue*) _possible_objects.at(selector); | |
return _selected; | |
} | |
diff --git a/src/hotspot/share/opto/output.cpp b/src/hotspot/share/opto/output.cpp | |
index ef30f6297e0..6b491564b8c 100644 | |
--- a/src/hotspot/share/opto/output.cpp | |
+++ b/src/hotspot/share/opto/output.cpp | |
@@ -774,10 +774,13 @@ void PhaseOutput::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, | |
GrowableArray<ScopeValue*> deps; | |
int merge_pointer_idx = smerge->merge_pointer_idx(sfpt->jvms()); | |
+ assert((uint)merge_pointer_idx < sfpt->req(), "merge_pointer_idx > sfpt->req()"); | |
(void)FillLocArray(0, sfpt, sfpt->in(merge_pointer_idx), &deps, objs); | |
assert(deps.length() == 1, "missing value"); | |
int selector_idx = smerge->selector_idx(sfpt->jvms()); | |
+ assert((uint)selector_idx < sfpt->req(), "selector_idx > sfpt->req()"); | |
+ tty->print_cr("selector is-> "); sfpt->in(selector_idx)->dump(1); | |
(void)FillLocArray(1, NULL, sfpt->in(selector_idx), &deps, NULL); | |
assert(deps.length() == 2, "missing value"); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment