aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2025-08-18 11:18:55 +0200
committerH.J. Lu <hjl.tools@gmail.com>2025-08-20 11:47:53 -0700
commitdd38f49cdcc3630c541d9f603eb9b5dbeccbbe56 (patch)
tree5da1eea4ff48b839cbbcbaf3571a7e14c17a98c7
parentaac077645a645bba0d67f3250e82017c539d0f4b (diff)
downloadglibc-dd38f49cdcc3630c541d9f603eb9b5dbeccbbe56.zip
glibc-dd38f49cdcc3630c541d9f603eb9b5dbeccbbe56.tar.gz
glibc-dd38f49cdcc3630c541d9f603eb9b5dbeccbbe56.tar.bz2
x86_64: Use TESTB instead of TESTL in CHECK_INVALID_LONGJMP
There is no need to use TESTL when checking the least-significant bit with a TEST instruction. Use TESTB, which is three bytes shorter: f6 44 24 f0 01 testb $0x1,-0x10(%rsp) vs: f7 44 24 f0 01 00 00 testl $0x1,-0x10(%rsp) 00 for the same effect. No functional changes intended. Signed-off-by: Uros Bizjak <ubizjak@gmail.com> Cc: H.J.Lu <hjl.tools@gmail.com> Cc: Carlos O'Donell <carlos@redhat.com> Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index b73a18b..3bcdd6a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -44,7 +44,7 @@ longjmp_msg:
/* Without working sigaltstack we cannot perform the test. */ \
testl %eax, %eax; \
jne .Lok2; \
- testl $1, (-sizeSS + oSS_FLAGS)(%rsp); \
+ testb $1, (-sizeSS + oSS_FLAGS)(%rsp); \
jz .Lfail; \
mov (-sizeSS + oSS_SP)(%rsp), %RAX_LP; \
add (-sizeSS + oSS_SIZE)(%rsp), %RAX_LP; \