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