diff options
author | Matt Fleming <matt.fleming@intel.com> | 2011-12-15 11:06:56 +0000 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2011-12-16 16:31:19 +0000 |
commit | 04303c2561333b937c30e37732cefe1df0abb280 (patch) | |
tree | f2e2b44dcd8a1e2f4a13271529ac3469974a1ad9 | |
parent | 8f767b805cb3d63087d9d4f2eeb5eaf90bd71c30 (diff) | |
download | syslinux-04303c2561333b937c30e37732cefe1df0abb280.tar.gz syslinux-04303c2561333b937c30e37732cefe1df0abb280.tar.xz syslinux-04303c2561333b937c30e37732cefe1df0abb280.zip |
core: Do not use -mregparm
When trying to integrate the old com32 code with EFI, EFI doesn't use
mregparm. Using mregparm leads to incompatibilities with most 3rd
party code anyway and it only results in a minimal space-saving at
runtime. Pass all parameters on the stack by default.
-rw-r--r-- | com32/lib/memcpy.S | 4 | ||||
-rw-r--r-- | com32/lib/memmove.S | 4 | ||||
-rw-r--r-- | com32/lib/mempcpy.S | 4 | ||||
-rw-r--r-- | com32/lib/memset.S | 4 | ||||
-rw-r--r-- | mk/com32.mk | 2 | ||||
-rw-r--r-- | mk/elf.mk | 2 | ||||
-rw-r--r-- | mk/lib.mk | 2 |
7 files changed, 19 insertions, 3 deletions
diff --git a/com32/lib/memcpy.S b/com32/lib/memcpy.S index 6b986a0d..9b5306dd 100644 --- a/com32/lib/memcpy.S +++ b/com32/lib/memcpy.S @@ -36,6 +36,10 @@ .globl memcpy .type memcpy, @function memcpy: + movl 0xc(%esp),%ecx + movl 0x8(%esp),%edx + movl 0x4(%esp),%eax + jecxz 1f pushl %esi diff --git a/com32/lib/memmove.S b/com32/lib/memmove.S index e97299f2..2094e4aa 100644 --- a/com32/lib/memmove.S +++ b/com32/lib/memmove.S @@ -37,6 +37,10 @@ .type memmove,@function .text memmove: + movl 0xc(%esp),%ecx + movl 0x8(%esp),%edx + movl 0x4(%esp),%eax + jecxz 4f pushl %esi diff --git a/com32/lib/mempcpy.S b/com32/lib/mempcpy.S index cad7b983..2096f132 100644 --- a/com32/lib/mempcpy.S +++ b/com32/lib/mempcpy.S @@ -36,6 +36,10 @@ .globl mempcpy .type mempcpy, @function mempcpy: + movl 0xc(%esp),%ecx + movl 0x8(%esp),%edx + movl 0x4(%esp),%eax + jecxz 1f pushl %esi diff --git a/com32/lib/memset.S b/com32/lib/memset.S index e641415d..fd42842a 100644 --- a/com32/lib/memset.S +++ b/com32/lib/memset.S @@ -36,6 +36,10 @@ .type memset,@function .text memset: + movl 0xc(%esp),%ecx + movl 0x8(%esp),%edx + movl 0x4(%esp),%eax + jecxz 6f pushl %edi diff --git a/mk/com32.mk b/mk/com32.mk index 262d2a6c..db716c0d 100644 --- a/mk/com32.mk +++ b/mk/com32.mk @@ -22,7 +22,7 @@ GCCOPT += $(call gcc_ok,-m32,) GCCOPT += $(call gcc_ok,-fno-stack-protector,) GCCOPT += $(call gcc_ok,-fwrapv,) GCCOPT += $(call gcc_ok,-freg-struct-return,) -GCCOPT += -mregparm=3 -DREGPARM=3 -march=i386 -Os +GCCOPT += -march=i386 -Os GCCOPT += $(call gcc_ok,-fPIE,-fPIC) GCCOPT += $(call gcc_ok,-fno-exceptions,) GCCOPT += $(call gcc_ok,-fno-asynchronous-unwind-tables,) @@ -21,7 +21,7 @@ GCCOPT += $(call gcc_ok,-m32,) GCCOPT += $(call gcc_ok,-fno-stack-protector,) GCCOPT += $(call gcc_ok,-fwrapv,) GCCOPT += $(call gcc_ok,-freg-struct-return,) -GCCOPT += -march=i386 -Os -fomit-frame-pointer -mregparm=3 -DREGPARM=3 +GCCOPT += -march=i386 -Os -fomit-frame-pointer GCCOPT += $(call gcc_ok,-fno-exceptions,) GCCOPT += $(call gcc_ok,-fno-asynchronous-unwind-tables,) GCCOPT += $(call gcc_ok,-fPIE,-fPIC) @@ -31,7 +31,7 @@ LIBFLAGS = -DDYNAMIC_CRC_TABLE -DPNG_NO_CONSOLE_IO \ # fallback anyway, just use that on old machines... # LIBFLAGS += -DPNG_NO_FLOATING_POINT_SUPPORTED -REQFLAGS = $(GCCOPT) -g -mregparm=3 -DREGPARM=3 -D__COM32__ \ +REQFLAGS = $(GCCOPT) -g -D__COM32__ \ -nostdinc -iwithprefix include -I. -I./sys -I../include \ -I../../core/include OPTFLAGS = -Os -march=i386 -falign-functions=0 -falign-jumps=0 \ |