]> Sergey Matveev's repositories - public-inbox.git/commitdiff
syscall: avoid needless string comparison on x86-64
authorEric Wong <e@80x24.org>
Mon, 17 Oct 2022 09:30:52 +0000 (09:30 +0000)
committerEric Wong <e@80x24.org>
Mon, 17 Oct 2022 22:16:28 +0000 (22:16 +0000)
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

index 412ca64ff5891f06d11bd0cbf268f978b0cde806..291e0489ca35cb192d47c36f5c9e77faed497e7a 100644 (file)
@@ -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$/) {