From 3a357eadbac77f2847d2aea7b228fca5a1406cb3 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Wed, 5 Feb 2003 17:01:33 +0000 Subject: 2003-02-05 Chris Demetriou * mips/cfe.c (hardware_hazard_hook): Move... * mips/cfe_prestart.S (hardware_hazard_hook): To here, and translate into assembly. --- libgloss/mips/cfe.c | 17 ----------------- libgloss/mips/cfe_prestart.S | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 17 deletions(-) (limited to 'libgloss/mips') 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 -- cgit v1.2.3