[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] hvmloader: Use fastcall everywhere



commit b25b28ede1cba43eda1e0b84ad967683b8196847
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Thu May 9 18:52:59 2024 +0100
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Wed Jul 24 18:24:56 2024 +0100

    hvmloader: Use fastcall everywhere
    
    HVMLoader is a single freestanding 32bit program with no external
    dependencies.  Use the fastcall calling convetion (up to 3 parameters in
    registers) globally, which is more efficient than passing all parameters on
    the stack.
    
    Some bloat-o-meter highlights are:
    
      add/remove: 0/0 grow/shrink: 3/118 up/down: 8/-3004 (-2996)
      Function                                     old     new   delta
      ...
      hvmloader_acpi_build_tables                 1125     961    -164
      acpi_build_tables                           1277    1081    -196
      pci_setup                                   4756    4516    -240
      construct_secondary_tables                  1689    1447    -242
    
    No functional change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 tools/firmware/hvmloader/Makefile | 2 +-
 tools/firmware/hvmloader/smp.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/firmware/hvmloader/Makefile 
b/tools/firmware/hvmloader/Makefile
index 84cba171cd..c7bc400657 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -25,7 +25,7 @@ ld-option = $(shell if $(LD) -v $(1) >/dev/null 2>&1; then 
echo y; else echo n;
 # SMBIOS spec requires format mm/dd/yyyy
 SMBIOS_REL_DATE ?= $(shell date +%m/%d/%Y)
 
-CFLAGS += $(CFLAGS_xeninclude) -fno-pic
+CFLAGS += $(CFLAGS_xeninclude) -fno-pic -mregparm=3
 
 # We mustn't use tools-only public interfaces.
 CFLAGS += -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__
diff --git a/tools/firmware/hvmloader/smp.c b/tools/firmware/hvmloader/smp.c
index 5d46eee1c5..1b940cefd0 100644
--- a/tools/firmware/hvmloader/smp.c
+++ b/tools/firmware/hvmloader/smp.c
@@ -31,7 +31,7 @@
 
 static int ap_callin;
 
-static void __attribute__((regparm(1))) cpu_setup(unsigned int cpu)
+static void cpu_setup(unsigned int cpu)
 {
     printf(" - CPU%d ... ", cpu);
     cacheattr_init();
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.