This is the mail archive of the
cgen@sources.redhat.com
mailing list for the CGEN project.
RFA: sh64-media.cpu : msad.ubq has unsigned inputs.
- From: Joern Rennecke <joern dot rennecke at superh dot com>
- To: cgen at sources dot redhat dot com
- Date: Wed, 21 May 2003 17:27:17 +0100
- Subject: RFA: sh64-media.cpu : msad.ubq has unsigned inputs.
- Organization: SuperH UK Ltd.
I've found that the msad.ubq instruction in the simulator
operated on signed bytes, although the architecture says these
bytes are unsigned.
Unfortunately, I couldn't regenerate the simulator files in the
current sources, as the sh64-elf build directory is not generated.
--
--------------------------
SuperH (UK) Ltd.
2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
T:+44 1454 465658
2003-05-21 J"orn Rennecke <joern.rennecke@superh.com>
* sh64-media.cpu (msad.ubq): Inputs are unsigned bytes.
Index: sh64-media.cpu
===================================================================
RCS file: /cvs/src/src/cgen/cpu/sh64-media.cpu,v
retrieving revision 1.5
diff -p -r1.5 sh64-media.cpu
*** sh64-media.cpu 21 May 2003 14:10:46 -0000 1.5
--- sh64-media.cpu 21 May 2003 16:21:36 -0000
***************
*** 1,6 ****
; SuperH SHmedia instruction set description. -*- Scheme -*-
; Copyright (C) 2000, 2001 Red Hat, Inc.
! ; Copyright (C) 2002 SuperH Ltd
; This file is part of CGEN.
; See file COPYING.CGEN for details.
--- 1,6 ----
; SuperH SHmedia instruction set description. -*- Scheme -*-
; Copyright (C) 2000, 2001 Red Hat, Inc.
! ; Copyright (C) 2002, 2003 SuperH Ltd
; This file is part of CGEN.
; See file COPYING.CGEN for details.
***************
*** 1276,1289 ****
"msad.ubq $rm, $rn, $rd"
(+ (f-op 18) rm (f-ext 0) rn rd (f-rsvd 0))
(sequence ((DI acc))
! (set acc (abs DI (sub (subword QI rm 0) (subword QI rn 0))))
! (set acc (add DI acc (abs (sub (subword QI rm 1) (subword QI rn 1)))))
! (set acc (add DI acc (abs (sub (subword QI rm 2) (subword QI rn 2)))))
! (set acc (add DI acc (abs (sub (subword QI rm 3) (subword QI rn 3)))))
! (set acc (add DI acc (abs (sub (subword QI rm 4) (subword QI rn 4)))))
! (set acc (add DI acc (abs (sub (subword QI rm 5) (subword QI rn 5)))))
! (set acc (add DI acc (abs (sub (subword QI rm 6) (subword QI rn 6)))))
! (set acc (add DI acc (abs (sub (subword QI rm 7) (subword QI rn 7)))))
(set rd (add rd acc))))
(define-pmacro (-mshaldsl arg) (saturate SI 32 (sll DI arg (and rn 31))))
--- 1276,1297 ----
"msad.ubq $rm, $rn, $rd"
(+ (f-op 18) rm (f-ext 0) rn rd (f-rsvd 0))
(sequence ((DI acc))
! (set acc (abs DI (sub (zext SI (subword UQI rm 0))
! (zext SI (subword UQI rn 0)))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 1))
! (zext SI (subword UQI rn 1))))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 2))
! (zext SI (subword UQI rn 2))))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 3))
! (zext SI (subword UQI rn 3))))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 4))
! (zext SI (subword UQI rn 4))))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 5))
! (zext SI (subword UQI rn 5))))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 6))
! (zext SI (subword UQI rn 6))))))
! (set acc (add DI acc (abs (sub (zext SI (subword UQI rm 7))
! (zext SI (subword UQI rn 7))))))
(set rd (add rd acc))))
(define-pmacro (-mshaldsl arg) (saturate SI 32 (sll DI arg (and rn 31))))