< prev index next > src/hotspot/cpu/zero/zeroInterpreter_zero.cpp
Print this page
/*
- * Copyright (c) 2003, 2025, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2026, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
* 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
ResolvedFieldEntry* entry = cache->resolved_field_entry_at(index);
if (!entry->is_resolved(Bytecodes::_getfield)) {
return normal_entry(method, 0, THREAD);
}
+ // Flattened entries require handling beyond a direct field load.
+ // Bail to slow path.
+ if (entry->is_flat()) {
+ return normal_entry(method, 0, THREAD);
+ }
+
ZeroStack* stack = thread->zero_stack();
intptr_t* topOfStack = stack->sp();
// Load the object pointer and drop into the slow path
// if we have a NullPointerException
ResolvedFieldEntry* entry = cache->resolved_field_entry_at(index);
if (!entry->is_resolved(Bytecodes::_putfield)) {
return normal_entry(method, 0, THREAD);
}
+ // Flattened entries require handling beyond a direct field store.
+ // Bail to slow path.
+ if (entry->is_flat()) {
+ return normal_entry(method, 0, THREAD);
+ }
+
ZeroStack* stack = thread->zero_stack();
intptr_t* topOfStack = stack->sp();
// Figure out where the receiver is. If there is a long/double
// operand on stack top, then receiver is two slots down.
< prev index next >