Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JohnTortugo/5efef342fa2b5b712abeed461f9dbec8 to your computer and use it in GitHub Desktop.
Save JohnTortugo/5efef342fa2b5b712abeed461f9dbec8 to your computer and use it in GitHub Desktop.
Investigate RAM issue on Big-endians
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, &reg_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