Running the jtreg test serviceability/sa/ClhsdbWhere.java with -Xcomp -XX:-TieredCompilation fails with the following exception:
Error: java.lang.NullPointerException: Cannot invoke "sun.jvm.hotspot.debugger.Address.getJLongAt(long)" because "valueAddr" is null java.lang.NullPointerException: Cannot invoke "sun.jvm.hotspot.debugger.Address.getJLongAt(long)" because "valueAddr" is null at jdk.hotspot.agent/sun.jvm.hotspot.runtime.CompiledVFrame.createStackValue(CompiledVFrame.java:270) at jdk.hotspot.agent/sun.jvm.hotspot.runtime.CompiledVFrame.getLocals(CompiledVFrame.java:107) at jdk.hotspot.agent/sun.jvm.hotspot.ui.classbrowser.HTMLGenerator.genHTMLForJavaStackTrace(HTMLGenerator.java:1937) at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor$43.doit(CommandProcessor.java:1573) at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:2090) at jdk.hotspot.agent/sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:2060) The oop map for the frame being inspected is: ScopeDesc(pc=0x0000ffff8957e000 offset=140): jdk.test.lib.apps.LingeredApp::steadyState@7 (line 536) Locals - l0: empty - l1: reg rfp [58],oop - l2: empty Monitor stack - @0: monitor{reg rfp [58],oop,stack[16]} But RegisterMap::getLocation() returns a null Address for register 58 (=RFP). This patch fixes two problems: the fp VMReg value used in AARCH64Frame::updateMapWithSavedLink should be 29<<1 not 29 because a VMReg has two slots in a 64-bit VM. The other bug is that RegisterMap::setLocation and getLocation calculate the long locationValid mask using (1 << (i % locationValidTypeSize)) where i and locationValidTypeSize are both int. We need to do this calculation as a long if i % locationValidTypeSize can be > 32. There's no failure on x86_64 because that only has 16 integer registers. ------------- Commit messages: - 8270067: AArch64: several clhsdb tests fail with -Xcomp Changes: https://git.openjdk.java.net/jdk/pull/4737/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4737&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8270067 Stats: 5 lines in 2 files changed: 0 ins; 0 del; 5 mod Patch: https://git.openjdk.java.net/jdk/pull/4737.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/4737/head:pull/4737 PR: https://git.openjdk.java.net/jdk/pull/4737