From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3681 invoked by alias); 3 Jun 2003 17:14:50 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 3633 invoked by alias); 3 Jun 2003 17:14:49 -0000 Date: Tue, 03 Jun 2003 17:14:00 -0000 Message-ID: <20030603171449.3632.qmail@sources.redhat.com> From: "marcus@mc.pp.se" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20020430191600.6526.marcus@mc.pp.se> References: <20020430191600.6526.marcus@mc.pp.se> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug target/6526] [SH4] sdivsi3_i4 can clobber xd0/xd2 X-Bugzilla-Reason: CC X-SW-Source: 2003-06/txt/msg00487.txt.bz2 List-Id: PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=6526 ------- Additional Comments From marcus@mc.pp.se 2003-06-03 17:14 ------- Subject: Re: [SH4] sdivsi3_i4 can clobber xd0/xd2 "joern.rennecke@superh.com" writes: > The patch you provided does not make integer division slower, Well, that's a good thing isn't it? >it also causes it to give different results when the floating point >rounding mode is changed, or trap when e.g. inexact traps are enabled. This is already the case with several other implementations in lib1funcs.asm, so presumably changing rounding/trap mode is also "not supported", and fixing that is a separate issue. > I suggest that you switch to the alternate floating point register bank > to put your matrix there, and then switch back to use the ordinary > floating point registers for generic floating point operations. That's what I'm doing. The trick comes when applying a transformation operation to the matrix. Then the operation matrix is loaded into the "ordinary" floating point registers, and four ftrv operations are carried out to compute the new matrix. The new matrix however ends up in fr0-fr15, but it's just a matter of doing a frchg and it becomes the new xmtrx, and I get a new set of ordinary floating point registers. Unless I'm very much mistaken, this is the whole idea of the frchg instruction. The alternative would be to copy all the computed values manually, which would be much slower. // Marcus ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.