From 4554f155dd23a65fcdfd39f1d5af8af55ba37694 Mon Sep 17 00:00:00 2001 From: Alexander Monakov Date: Wed, 12 Aug 2020 14:34:30 +0300 Subject: setjmp: optimize longjmp prologues Use a branchless sequence that is one byte shorter on 64-bit, same size on 32-bit. Thanks to Pete Cawley for suggesting this variant. --- src/setjmp/i386/longjmp.s | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/setjmp/i386/longjmp.s') diff --git a/src/setjmp/i386/longjmp.s b/src/setjmp/i386/longjmp.s index b429f135..8188f06b 100644 --- a/src/setjmp/i386/longjmp.s +++ b/src/setjmp/i386/longjmp.s @@ -6,10 +6,8 @@ _longjmp: longjmp: mov 4(%esp),%edx mov 8(%esp),%eax - test %eax,%eax - jnz 1f - inc %eax -1: + cmp $1,%eax + adc $0, %al mov (%edx),%ebx mov 4(%edx),%esi mov 8(%edx),%edi -- cgit v1.2.1