From 7a13b24e3b7f31a647ea180d5b180d8f8eaa025a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 17 Oct 2022 09:30:52 +0000 Subject: syscall: avoid needless string comparison on x86-64 For common x86-64 systems, we can avoid a needless string comparison on `mips64' by restructuring the branches for architecture detection. --- lib/PublicInbox/Syscall.pm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'lib/PublicInbox/Syscall.pm') diff --git a/lib/PublicInbox/Syscall.pm b/lib/PublicInbox/Syscall.pm index 412ca64f..291e0489 100644 --- a/lib/PublicInbox/Syscall.pm +++ b/lib/PublicInbox/Syscall.pm @@ -97,15 +97,14 @@ if ($^O eq "linux") { # boundaries. my $u64_mod_8 = 0; - # if we're running on an x86_64 kernel, but a 32-bit process, - # we need to use the x32 or i386 syscall numbers. - if ($machine eq "x86_64" && $Config{ptrsize} == 4) { - $machine = $Config{cppsymbols} =~ /\b__ILP32__=1\b/ ? 'x32' : 'i386'; - } - - # Similarly for mips64 vs mips - if ($machine eq "mips64" && $Config{ptrsize} == 4) { - $machine = "mips"; + if ($Config{ptrsize} == 4) { + # if we're running on an x86_64 kernel, but a 32-bit process, + # we need to use the x32 or i386 syscall numbers. + if ($machine eq 'x86_64') { + $machine = $Config{cppsymbols} =~ /\b__ILP32__=1\b/ ? 'x32' : 'i386' + } elsif ($machine eq 'mips64') { # similarly for mips64 vs mips + $machine = 'mips'; + } } if ($machine =~ m/^i[3456]86$/) { -- cgit v1.2.3-24-ge0c7