Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2003-02-05 20:01:33 +0300
committerJeff Johnston <jjohnstn@redhat.com>2003-02-05 20:01:33 +0300
commit3a357eadbac77f2847d2aea7b228fca5a1406cb3 (patch)
treece224a9356fad9927bd5315fed281df743de8082 /libgloss/mips
parent5017a3dafa5d01d47b74872600524f1559973c26 (diff)
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.c17
-rw-r--r--libgloss/mips/cfe_prestart.S20
2 files changed, 20 insertions, 17 deletions
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