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 /libgloss/mips | |
parent | 5017a3dafa5d01d47b74872600524f1559973c26 (diff) | |
download | newlib-3a357eadbac77f2847d2aea7b228fca5a1406cb3.zip newlib-3a357eadbac77f2847d2aea7b228fca5a1406cb3.tar.gz newlib-3a357eadbac77f2847d2aea7b228fca5a1406cb3.tar.bz2 |
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.
Diffstat (limited to 'libgloss/mips')
-rw-r--r-- | libgloss/mips/cfe.c | 17 | ||||
-rw-r--r-- | libgloss/mips/cfe_prestart.S | 20 |
2 files changed, 20 insertions, 17 deletions
diff --git a/libgloss/mips/cfe.c b/libgloss/mips/cfe.c index 6efd57d..f5e1e54 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 4a1db53..8548c1e 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 |