On Wed, Oct 15, 2008 at 5:44 PM, Carl-Daniel Hailfinger <
[EMAIL PROTECTED]> wrote:

> On 16.10.2008 01:13, Peter Stuge wrote:
> > ron minnich wrote:
> >
> >> Myles, try setting -mregparm=0 and see if life is better.
> >>
> >
> > Good find.
> >
>
> __attribute__((stdcall)) will do this for you.


It doesn't work for me.  I tried it in various places, but it doesn't change
the way the parameters are handled.

void __attribute__ ((stdcall)) callbiosint(void)
__attribute__ ((stdcall)) void callbiosint(void)
void  callbiosint(void) __attribute__ ((stdcall))

biosint: INT# 0x18
biosint: eax 0x2e ebx 0x10000 ecx 0xfe4 edx 0xcf11c
biosint: ebp 0xc0000000 esp 0xd0000 edi 0x1a esi 0x0
biosint:  ip 0x1022   cs 0xf  flags 0x2067
BIOSINT: Unsupport int #0x18

Thanks,
Myles


>
> Changing compilation mode makes code to -mregparm=0 makes the code
> bigger and slower and it will also possibly consume more stack which we
> don't have in MP setups.
>
>
> >> I vote we get rid of this type of Cleverness. It's just not
> >> performance critical in a bios. We're not an OS and we should keep
> >> it simple. I don't think we'll live or die on 3 on-stack variables.
> >>
> >
> > If it isn't more relevant because of CAR then away it goes.
> >
>
> See above.
>
> Regards,
> Carl-Daniel
>
> --
> http://www.hailfinger.org/
>
>
> --
> coreboot mailing list: coreboot@coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>
--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to