File 4443-erts-Fix-super-alignment-in-etp-commands.patch of Package erlang

From 410b279d41955070e0faa12423ac647de678bb08 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Tue, 11 May 2021 13:18:32 +0200
Subject: [PATCH 3/3] erts: Fix super alignment in etp-commands

---
 erts/etc/unix/etp-commands.in | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/erts/etc/unix/etp-commands.in b/erts/etc/unix/etp-commands.in
index 620ad2679e..876d73e95e 100644
--- a/erts/etc/unix/etp-commands.in
+++ b/erts/etc/unix/etp-commands.in
@@ -4447,14 +4447,16 @@ end
 define etp-block2mbc-1
 #
 # In: (Block_t*) in $arg0
-# Out: (Carrier_t*) in $etp-mbc
+# Out: (Carrier_t*) in $etp_mbc
 #
   if (($arg0)->bhdr) & 1
       # Free block
       set $etp_mbc = ($arg0)->u.carrier
   else
       # Allocated block
-      set $etp_mbc = (Carrier_t*) ((((UWord)($arg0) >> 18) - ((($arg0)->bhdr & $etp_MBC_ABLK_OFFSET_MASK) >> $etp_MBC_ABLK_OFFSET_SHIFT)) << 18)
+    set $etp_mbc = (Carrier_t*) ((((UWord)($arg0) >> $etp_SUPER_ALIGN_BITS) \
+        - ((($arg0)->bhdr & $etp_MBC_ABLK_OFFSET_MASK) >> $etp_MBC_ABLK_OFFSET_SHIFT)) \
+        << $etp_SUPER_ALIGN_BITS)
   end
 end
 
@@ -4727,8 +4729,10 @@ define etp-init
   set $etp_arch64 = (sizeof(void *) == 8)
   if $etp_arch64
     set $etp_MBC_ABLK_OFFSET_BITS = 23
+    set $etp_SUPER_ALIGN_BITS = 14
   else
     set $etp_MBC_ABLK_OFFSET_BITS = 8
+    set $etp_SUPER_ALIGN_BITS = 18
   end
   set $etp_nil = 0x3b
   set $etp_MBC_ABLK_OFFSET_SHIFT = (sizeof(UWord)*8 - 1 - $etp_MBC_ABLK_OFFSET_BITS)
-- 
2.26.2

openSUSE Build Service is sponsored by