diff --git a/ChangeLog b/ChangeLog index e531142ec..878037f2a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-12-28 Yoshinori K. Okuji + + * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a + bunch of pushl's from pusha, because this destroys the return + value. + 2002-12-28 Yoshinori K. Okuji Use -mrtd and -mregparm=3 to reduce the generated code sizes. diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S index aaabdc307..5e6d55604 100644 --- a/kern/i386/pc/startup.S +++ b/kern/i386/pc/startup.S @@ -797,7 +797,10 @@ xnoteisa: */ FUNCTION(pupa_get_mmap_entry) - pusha + pushl %ebp + pushl %ebx + pushl %edi + pushl %esi /* push ADDR */ pushl %eax @@ -852,7 +855,10 @@ xsmap: /* set return value to continuation */ movl %ebx, %eax - popa + popl %esi + popl %edi + popl %ebx + popl %ebp ret