From fa5810519dcbfaa60974183cbe11c6c0d050a23d Mon Sep 17 00:00:00 2001 From: Nigel Tao Date: Sun, 16 Jan 2022 12:10:46 +1100 Subject: [PATCH] Ensure arm64 frame sizes are 8 (mod 16) Fixes #63 --- encode_arm64.s | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/encode_arm64.s b/encode_arm64.s index f8d54ad..f0c876a 100644 --- a/encode_arm64.s +++ b/encode_arm64.s @@ -27,7 +27,7 @@ // The unusual register allocation of local variables, such as R10 for the // source pointer, matches the allocation used at the call site in encodeBlock, // which makes it easier to manually inline this function. -TEXT ·emitLiteral(SB), NOSPLIT, $32-56 +TEXT ·emitLiteral(SB), NOSPLIT, $40-56 MOVD dst_base+0(FP), R8 MOVD lit_base+24(FP), R10 MOVD lit_len+32(FP), R3 @@ -261,7 +261,7 @@ extendMatchEnd: // "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An // extra 64 bytes, to call other functions, and an extra 64 bytes, to spill // local variables (registers) during calls gives 32768 + 64 + 64 = 32896. -TEXT ·encodeBlock(SB), 0, $32896-56 +TEXT ·encodeBlock(SB), 0, $32904-56 MOVD dst_base+0(FP), R8 MOVD src_base+24(FP), R7 MOVD src_len+32(FP), R14