From 7ae447f4ebed5f00b3aab59e2e48c23ee05fda89 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Mon, 6 Feb 2023 14:22:00 +0000 Subject: [PATCH] 8301095: [s390x] TestDwarf.java fails Reviewed-by: lucy, tsteele --- src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp b/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp index 80acfe97de3..db64bce14e7 100644 --- a/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp +++ b/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2016, 2019 SAP SE. All rights reserved. + * Copyright (c) 2016, 2023 SAP SE. 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 @@ -172,7 +172,14 @@ frame os::get_sender_for_C_frame(frame* fr) { return frame(fr->sender_sp(), fr->sender_pc()); } } else { - return frame(fr->sender_sp(), fr->native_sender_pc()); + intptr_t* sender_sp = fr->sender_sp(); + address sender_fp = (address)*sender_sp; + ptrdiff_t entry_len = sender_fp - (address)sender_sp; + if (entry_len < frame::z_abi_160_size) { + return frame(sender_sp, fr->sender_pc()); + } else { + return frame(sender_sp, fr->native_sender_pc()); + } } } }