x86: Change compiler options
Change to: - reparam=3 - no-from-pointer - no-stack-protector - preferred-stack-boundary=2 - no-top-level-reorder These options make the code a little smaller and faster
This commit is contained in:
parent
8ffb2e8f33
commit
5c161653db
|
@ -25,6 +25,14 @@ CROSS_COMPILE ?= i386-linux-
|
|||
|
||||
STANDALONE_LOAD_ADDR = 0x40000
|
||||
|
||||
PLATFORM_CPPFLAGS += -fno-strict-aliasing
|
||||
PLATFORM_CPPFLAGS += -Wstrict-prototypes
|
||||
PLATFORM_CPPFLAGS += -mregparm=3
|
||||
PLATFORM_CPPFLAGS += -fomit-frame-pointer
|
||||
PLATFORM_CPPFLAGS += $(call cc-option, -ffreestanding)
|
||||
PLATFORM_CPPFLAGS += $(call cc-option, -fno-toplevel-reorder, $(call cc-option, -fno-unit-at-a-time))
|
||||
PLATFORM_CPPFLAGS += $(call cc-option, -fno-stack-protector)
|
||||
PLATFORM_CPPFLAGS += $(call cc-option, -mpreferred-stack-boundary=2)
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_I386 -D__I386__
|
||||
|
||||
LDFLAGS += --cref --gc-sections
|
||||
|
|
|
@ -225,7 +225,7 @@ int disable_interrupts(void)
|
|||
}
|
||||
|
||||
/* IRQ Low-Level Service Routine */
|
||||
__isr__ irq_llsr(struct pt_regs *regs)
|
||||
void irq_llsr(struct pt_regs *regs)
|
||||
{
|
||||
/*
|
||||
* For detailed description of each exception, refer to:
|
||||
|
@ -370,12 +370,7 @@ asm(".globl irq_common_entry\n" \
|
|||
"pushl %ecx\n" \
|
||||
"pushl %ebx\n" \
|
||||
"mov %esp, %eax\n" \
|
||||
"pushl %ebp\n" \
|
||||
"movl %esp,%ebp\n" \
|
||||
"pushl %eax\n" \
|
||||
"call irq_llsr\n" \
|
||||
"popl %eax\n" \
|
||||
"leave\n"\
|
||||
"popl %ebx\n" \
|
||||
"popl %ecx\n" \
|
||||
"popl %edx\n" \
|
||||
|
|
|
@ -149,16 +149,10 @@ stack_ok:
|
|||
|
||||
wbinvd
|
||||
|
||||
/* Get upper memory limit */
|
||||
movl %esp, %ecx
|
||||
subl $CONFIG_SYS_STACK_SIZE, %ecx
|
||||
/* Set the upper memory limit parameter */
|
||||
movl %esp, %eax
|
||||
subl $CONFIG_SYS_STACK_SIZE, %eax
|
||||
|
||||
/* Create a Stack Frame */
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
|
||||
/* stack_limit parameter */
|
||||
pushl %ecx
|
||||
call board_init_f /* Enter, U-boot! */
|
||||
|
||||
/* indicate (lack of) progress */
|
||||
|
|
|
@ -41,6 +41,4 @@ void specific_eoi(int irq);
|
|||
|
||||
extern char exception_stack[];
|
||||
|
||||
#define __isr__ void __attribute__ ((regparm(0)))
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue