diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2003-02-05 17:01:33 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2003-02-05 17:01:33 +0000 |
commit | 3a357eadbac77f2847d2aea7b228fca5a1406cb3 (patch) | |
tree | ce224a9356fad9927bd5315fed281df743de8082 | |
parent | 5017a3dafa5d01d47b74872600524f1559973c26 (diff) | |
download | cygnal-3a357eadbac77f2847d2aea7b228fca5a1406cb3.tar.gz cygnal-3a357eadbac77f2847d2aea7b228fca5a1406cb3.tar.bz2 cygnal-3a357eadbac77f2847d2aea7b228fca5a1406cb3.zip |
2003-02-05 Chris Demetriou <cgd@broadcom.com>
* mips/cfe.c (hardware_hazard_hook): Move...
* mips/cfe_prestart.S (hardware_hazard_hook): To here,
and translate into assembly.
-rw-r--r-- | libgloss/ChangeLog | 12 | ||||
-rw-r--r-- | libgloss/mips/cfe.c | 17 | ||||
-rw-r--r-- | libgloss/mips/cfe_prestart.S | 20 |
3 files changed, 29 insertions, 20 deletions
diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index 7c03dfeea..754992a34 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,14 +1,20 @@ -2002-01-08 Richard Sandiford <rsandifo@redhat.com +2003-02-05 Chris Demetriou <cgd@broadcom.com> + + * mips/cfe.c (hardware_hazard_hook): Move... + * mips/cfe_prestart.S (hardware_hazard_hook): To here, + and translate into assembly. + +2003-01-08 Richard Sandiford <rsandifo@redhat.com * mips/crt0.S (_start): Allocate 64 bytes of stack instead of 32. Pass an empty argv and envp to main(). -2002-01-08 Richard Sandiford <rsandifo@redhat.com +2003-01-08 Richard Sandiford <rsandifo@redhat.com * mips/configure.in (mips64vr-elf, mips64vrel-elf): New config. * mips/configure: Regenerate. -2002-01-07 Chris Demetriou <cgd@broadcom.com> +2003-01-07 Chris Demetriou <cgd@broadcom.com> * crt0.S: Check for definition of __mips64 rather than checking (__mips < 3). diff --git a/libgloss/mips/cfe.c b/libgloss/mips/cfe.c index 6efd57d1f..f5e1e54be 100644 --- a/libgloss/mips/cfe.c +++ b/libgloss/mips/cfe.c @@ -96,23 +96,6 @@ hardware_init_hook(void) cfe_conshandle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE); } -/* Avoid worst-case execution hazards. This is targetted at the SB-1 - pipe, and is much worse than it needs to be (not even counting - the subroutine call and return). */ -void -hardware_hazard_hook(void) -{ - __asm__ __volatile__ (" .set push \n" - " .set mips32 \n" - " .set noreorder \n" - " ssnop \n" - " ssnop \n" - " ssnop \n" - " bnel $0, $0, .+4 \n" - " ssnop \n" - " .set pop \n"); -} - /* Exit back to monitor, with the given status code. */ void hardware_exit_hook (int status) diff --git a/libgloss/mips/cfe_prestart.S b/libgloss/mips/cfe_prestart.S index 4a1db5392..8548c1e47 100644 --- a/libgloss/mips/cfe_prestart.S +++ b/libgloss/mips/cfe_prestart.S @@ -64,3 +64,23 @@ _prestart: jr v0 nop .end _prestart + + +/* Avoid worst-case execution hazards. This is targetted at the SB-1 + pipe, and is much worse than it needs to be (not even counting + the subroutine call and return). */ + .globl hardware_hazard_hook + .ent hardware_hazard_hook +hardware_hazard_hook: + .set push + .set mips32 + .set noreorder + ssnop + ssnop + ssnop + bnel $0, $0, .+4 + ssnop + j ra + nop + .set pop + .end hardware_hazard_hook |