Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
1102-Slightly-optimize-the-is_eq_exact-and-is_n...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1102-Slightly-optimize-the-is_eq_exact-and-is_ne_exact-in.patch of Package erlang
From af318ba2bb3d78b130ea7c8f4ec1c01111b632e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Sat, 14 May 2022 05:46:00 +0200 Subject: [PATCH 2/3] Slightly optimize the is_eq_exact and is_ne_exact instructions The `cmp_arg()` helper would generate an unnecessary move to the SUPER_TMP register if the RHS argument was an X register backed by a CPU register. For example: mov x14, x27 cmp x26, x14 This code can be simplified to: cmp x26, x27 --- erts/emulator/beam/jit/arm/beam_asm.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erts/emulator/beam/jit/arm/beam_asm.hpp b/erts/emulator/beam/jit/arm/beam_asm.hpp index 19e5a1a5a4..bf1fdc5c48 100644 --- a/erts/emulator/beam/jit/arm/beam_asm.hpp +++ b/erts/emulator/beam/jit/arm/beam_asm.hpp @@ -1599,8 +1599,8 @@ protected: } } - mov_arg(SUPER_TMP, arg); - a.cmp(gp, SUPER_TMP); + auto tmp = load_source(arg, SUPER_TMP); + a.cmp(gp, tmp.reg); } void safe_stp(arm::Gp gp1, -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor