From dbc8df3b97aae772399b3a8a2a8c3f306f65dd9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Gr=C3=B6nlund?= Date: Sat, 14 Sep 2019 18:45:24 +0200 Subject: [PATCH] 8231025: Incorrect method tag offset for big endian platform Reviewed-by: egahlin --- .../share/jfr/support/jfrTraceIdExtension.hpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp b/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp index aae4c10a568..117abef94af 100644 --- a/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp +++ b/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp @@ -26,6 +26,7 @@ #define SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP #include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp" +#include "utilities/macros.hpp" #define DEFINE_TRACE_ID_FIELD mutable traceid _trace_id @@ -59,10 +60,19 @@ class JfrTraceFlag { } jbyte* flags_addr() const { +#ifdef VM_LITTLE_ENDIAN return (jbyte*)&_flags; - } - jbyte* meta_addr() const { +#else return ((jbyte*)&_flags) + 1; +#endif + } + + jbyte* meta_addr() const { +#ifdef VM_LITTLE_ENDIAN + return (jbyte*)(&_flags) + 1; +#else + return (jbyte*)&_flags; +#endif } };