From ebb6972dd3a6b9343c79fd022756523a2992a264 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Tue, 6 Feb 2007 15:52:33 -0500 Subject: more fp fixes fix unaligned accesses in mmaped disk device src/arch/sparc/isa/decoder.isa: get (ld|st)fsr ops working right. In reality the fp enable check needs to go higher up in the emitted code src/arch/sparc/isa/formats/basic.isa: move the cexec into the aexec field src/cpu/exetrace.cc: copy the exception state from legion when we get it wrong. We aren't going to get it right without an fp emulation layer src/dev/sparc/mm_disk.cc: src/dev/sparc/mm_disk.hh: fix unaligned accesses in the memory mapped disk device --HG-- extra : convert_revision : aaa33096b08cf0563fe291d984a87493a117e528 --- src/arch/sparc/isa/formats/basic.isa | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/arch/sparc/isa/formats/basic.isa') diff --git a/src/arch/sparc/isa/formats/basic.isa b/src/arch/sparc/isa/formats/basic.isa index fac523aeb..017f43780 100644 --- a/src/arch/sparc/isa/formats/basic.isa +++ b/src/arch/sparc/isa/formats/basic.isa @@ -106,6 +106,7 @@ def format BasicOperate(code, *flags) {{ def format FpBasic(code, *flags) {{ fp_code = """ + Fsr |= bits(Fsr,4,0) << 5; Fsr = insertBits(Fsr,4,0,0); #if defined(__sun) || defined (__OpenBSD__) fp_rnd newrnd = FP_RN; @@ -128,7 +129,10 @@ def format FpBasic(code, *flags) {{ fesetround(newrnd); #endif """ + fp_code += code + + fp_code += """ #if defined(__sun) || defined (__OpenBSD__) fpsetround(oldrnd); -- cgit v1.2.3