Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Bug in the _save_fp_context.
@ 2001-03-19 14:07 Carsten Langgaard
  2001-03-19 15:43 ` Kevin D. Kissell
  0 siblings, 1 reply; 8+ messages in thread
From: Carsten Langgaard @ 2001-03-19 14:07 UTC (permalink / raw)
  To: linux-mips

I think there is a bug in the _save_fp_context function in
arch/mips/kernel/r4k_fpu.S

The problem is the following piece of code:

 jr ra
 .set nomacro
 EX(sw t0,SC_FPC_EIR(a0))
 nop
 .set macro

First of all what should the ".set nomacro" do?
If it means that the EX macro shouldn't be used then this entry wouldn't
get into __ex_table, which would be wrong.
But it look like it uses the macro anyway, regardless of the ".set
nomacro", at least with the compiler I use.
Never the less we do not handle entries in the __ex_table which is
located in a branch delay.
So we need to handle the situation where we take a page fault on an
instruction which is located in a brach delay slot, or we don't put the
"potential" faulting instruction in a delay slot.

Any ideas, how we should handle this in a nice and clean way?

/Carsten

--
_    _ ____  ___   Carsten Langgaard   Mailto:carstenl@mips.com
|\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
| \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
  TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
                   Denmark             http://www.mips.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2001-03-19 18:18 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-19 14:07 Bug in the _save_fp_context Carsten Langgaard
2001-03-19 15:43 ` Kevin D. Kissell
2001-03-19 15:43   ` Kevin D. Kissell
2001-03-19 16:03   ` Kevin D. Kissell
2001-03-19 16:03     ` Kevin D. Kissell
2001-03-19 18:14     ` Jun Sun
2001-03-19 16:13   ` Carsten Langgaard
2001-03-19 18:10   ` SCSI card [Re: Bug in the _save_fp_context.] Jun Sun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox