mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 11:04:18 +08:00
Test/fix pabsh, pabsw, psrlvw.
This commit is contained in:
parent
0ffba68fdc
commit
52352d38d6
@ -1,3 +1,8 @@
|
||||
Mon Sep 1 16:48:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure.in (testdir): When a testsuite directory, add that to
|
||||
the list of confdirs.
|
||||
|
||||
Tue Aug 19 11:17:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure.in (extra_subdirs): Enable igen ready for V850.
|
||||
|
11
sim/configure
vendored
11
sim/configure
vendored
@ -1288,7 +1288,7 @@ case "${target}" in
|
||||
d30v-*-*)
|
||||
sim_target=d30v
|
||||
only_if_gcc=yes
|
||||
extra_subdirs="${extra_subdirs} igen testsuite"
|
||||
extra_subdirs="${extra_subdirs} igen"
|
||||
;;
|
||||
# end-sanitize-d30v
|
||||
h8300*-*-*) sim_target=h8300 ;;
|
||||
@ -1343,7 +1343,6 @@ case "${target}" in
|
||||
v850eq-*-*)
|
||||
# The V850 simulator can only be compiled by gcc.
|
||||
sim_target=v850
|
||||
extra_subdirs="${extra_subdirs} igen"
|
||||
only_if_gcc=yes
|
||||
;;
|
||||
# end-sanitize-v850eq
|
||||
@ -1367,6 +1366,14 @@ case "${target}" in
|
||||
*) sim_target=none ;;
|
||||
esac
|
||||
|
||||
|
||||
# Is there a testsuite directory for the target?
|
||||
testdir=`echo ${target} | sed -e 's/-.*-/-/'`
|
||||
if test -r ${srcdir}/testsuite/${testdir}/configure ; then
|
||||
extra_subdirs="${extra_subdirs} testsuite"
|
||||
fi
|
||||
|
||||
|
||||
case "${enable_sim}" in
|
||||
no) sim_target=none ;;
|
||||
yes)
|
||||
|
@ -53,7 +53,7 @@ case "${target}" in
|
||||
d30v-*-*)
|
||||
sim_target=d30v
|
||||
only_if_gcc=yes
|
||||
extra_subdirs="${extra_subdirs} igen testsuite"
|
||||
extra_subdirs="${extra_subdirs} igen"
|
||||
;;
|
||||
# end-sanitize-d30v
|
||||
h8300*-*-*) sim_target=h8300 ;;
|
||||
@ -131,6 +131,14 @@ case "${target}" in
|
||||
*) sim_target=none ;;
|
||||
esac
|
||||
|
||||
|
||||
# Is there a testsuite directory for the target?
|
||||
testdir=`echo ${target} | sed -e 's/-.*-/-/'`
|
||||
if test -r ${srcdir}/testsuite/${testdir}/configure ; then
|
||||
extra_subdirs="${extra_subdirs} testsuite"
|
||||
fi
|
||||
|
||||
|
||||
case "${enable_sim}" in
|
||||
no) sim_target=none ;;
|
||||
yes)
|
||||
|
@ -1,3 +1,11 @@
|
||||
start-sanitize-r5900
|
||||
Mon Sep 1 18:43:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gencode.c (build_instruction): For "pabsw" and "pabsh", check
|
||||
for overflow due to ABS of MININT, set result to MAXINT.
|
||||
(build_instruction): For "psrlvw", signextend bit 31.
|
||||
|
||||
end-sanitize-r5900
|
||||
Wed Aug 27 18:13:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure: Regenerated to track ../common/aclocal.m4 changes.
|
||||
|
@ -3580,8 +3580,8 @@ build_instruction (doisa, features, mips16, insn)
|
||||
break;
|
||||
|
||||
case PSRLVW:
|
||||
printf("GPR_UD(destreg,0) = RT_UW(0) >> (RS_UB(0) & 0x1F);\n");
|
||||
printf("GPR_UD(destreg,1) = RT_UW(2) >> (RS_UB(8) & 0x1F);\n");
|
||||
printf("GPR_UD(destreg,0) = SIGNEXTEND ( RT_UW(0) >> (RS_UB(0) & 0x1F), 31);\n");
|
||||
printf("GPR_UD(destreg,1) = SIGNEXTEND ( RT_UW(2) >> (RS_UB(8) & 0x1F), 31);\n");
|
||||
break;
|
||||
|
||||
case PSRAVW:
|
||||
@ -3658,14 +3658,18 @@ build_instruction (doisa, features, mips16, insn)
|
||||
{
|
||||
char* name = name_for_data_len( insn );
|
||||
char* letter = letter_for_data_len( insn );
|
||||
char* min = min_for_data_len( insn );
|
||||
char* max = max_for_data_len( insn );
|
||||
|
||||
printf("int i;\n");
|
||||
printf("for(i=0;i<%sS_IN_MMI_REGS;i++)\n", name );
|
||||
printf(" {\n");
|
||||
printf(" if (RT_S%s(i) < 0)\n", letter );
|
||||
printf(" GPR_S%s(destreg,i) = -RT_S%s(i);\n", letter, letter );
|
||||
printf(" else\n");
|
||||
printf(" if (RT_S%s(i) >= 0)\n", letter );
|
||||
printf(" GPR_S%s(destreg,i) = RT_S%s(i);\n", letter, letter );
|
||||
printf(" else if (RT_S%s(i) == %s)\n", letter, min );
|
||||
printf(" GPR_S%s(destreg,i) = %s;\n", letter, max );
|
||||
printf(" else\n");
|
||||
printf(" GPR_S%s(destreg,i) = -RT_S%s(i);\n", letter, letter );
|
||||
printf(" }\n");
|
||||
break;
|
||||
}
|
||||
|
13
sim/testsuite/ChangeLog
Normal file
13
sim/testsuite/ChangeLog
Normal file
@ -0,0 +1,13 @@
|
||||
Mon Sep 1 16:43:55 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure.in (configdirs): Test for the target directory instead
|
||||
of matching on a target.
|
||||
|
||||
end-sanitize-r5900
|
||||
Tue Jul 15 13:43:20 1997 Andrew Cagney <cagney@sendai.cygnus.com>
|
||||
|
||||
* configure.in (configdirs): Configure mipsr5900rv5900el
|
||||
directory.
|
||||
* configure: Regenerate.
|
||||
|
||||
start-sanitize-r5900
|
@ -5,8 +5,7 @@ dnl script appropriate for this directory. For more information, check
|
||||
dnl any existing configure script.
|
||||
|
||||
AC_PREREQ(2.5)
|
||||
dnl FIXME - think of a truly uniq file to this directory
|
||||
AC_INIT(d30v-elf)
|
||||
AC_INIT(common/bits-tst.c)
|
||||
|
||||
CC=${CC-cc}
|
||||
AC_SUBST(CC)
|
||||
@ -16,17 +15,11 @@ AC_CANONICAL_SYSTEM
|
||||
# Directories to use in all configurations.
|
||||
configdirs=""
|
||||
|
||||
|
||||
# add test sub-directory for appropriate targets
|
||||
case "${target}" in
|
||||
# start-sanitize-d30v
|
||||
d30v-*-elf) configdirs="${configdirs} d30v-elf" ;;
|
||||
# end-sanitize-d30v
|
||||
# start-sanitize-r5900
|
||||
mips64vr5900el-*-elf) configdirs="${configdirs} mips64vr5900el-elf" ;;
|
||||
# end-sanitize-r5900
|
||||
*) ;;
|
||||
esac
|
||||
testdir=`echo ${target} | sed -e 's/-.*-/-/'`
|
||||
if test -r ${srcdir}/${testdir}/configure ; then
|
||||
configdirs="${configdirs} $testdir"
|
||||
fi
|
||||
|
||||
# configure the subdirectories too
|
||||
AC_CONFIG_SUBDIRS($configdirs)
|
||||
|
@ -31,6 +31,10 @@ exit47.s
|
||||
hello.s
|
||||
loop.s
|
||||
t-macros.i
|
||||
|
||||
t-mtsa.s
|
||||
t-pabsh.s
|
||||
t-pabsw.s
|
||||
t-paddb.s
|
||||
t-paddsb.s
|
||||
t-paddsh.s
|
||||
@ -75,6 +79,7 @@ t-ppacw.s
|
||||
t-prot3w.s
|
||||
t-psllvw.s
|
||||
t-psravw.s
|
||||
t-psrlvw.s
|
||||
t-psubsb.s
|
||||
t-psubsh.s
|
||||
t-psubsw.s
|
||||
@ -83,6 +88,7 @@ t-psubuh.s
|
||||
t-psubuw.s
|
||||
t-psubw.s
|
||||
t-qfsrv.s
|
||||
|
||||
tick.s
|
||||
|
||||
Things-to-lose:
|
||||
|
@ -1,3 +1,11 @@
|
||||
Mon Sep 1 16:58:13 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (TESTS): Add t-psrlvw, t-pabsh, t-pabsw.
|
||||
(.s.o, .o.tx59): Add -Ttext 0xa002000, to ld. Add -I <srcdir> to
|
||||
as.
|
||||
|
||||
t-psrlvw.s, t-pabsh, t-pabsw: New files.
|
||||
|
||||
Tue Jul 29 10:56:53 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* t-mtsa.s: Check move/from SA instructions.
|
||||
|
@ -72,8 +72,8 @@ LD_FOR_TARGET = `\
|
||||
fi`
|
||||
|
||||
RUN_FOR_TARGET = `\
|
||||
if [ -x ../../../sim/${target_cpu}/run ]; then \
|
||||
echo ../../../sim/${target_cpu}/run ; \
|
||||
if [ -x ../../../sim/mips/run ]; then \
|
||||
echo ../../../sim/mips/run ; \
|
||||
else \
|
||||
echo $(target_alias)-run ; \
|
||||
fi`
|
||||
@ -83,6 +83,8 @@ TESTS = \
|
||||
exit47.ko \
|
||||
\
|
||||
t-mtsa.ok \
|
||||
t-pabsh.ok \
|
||||
t-pabsw.ok \
|
||||
t-paddb.ok \
|
||||
t-paddsb.ok \
|
||||
t-paddsh.ok \
|
||||
@ -126,6 +128,7 @@ TESTS = \
|
||||
t-ppacw.ok \
|
||||
t-prot3w.ok \
|
||||
t-psllvw.ok \
|
||||
t-psrlvw.ok \
|
||||
t-psravw.ok \
|
||||
t-psubsb.ok \
|
||||
t-psubsh.ok \
|
||||
@ -154,7 +157,7 @@ sanity:
|
||||
|
||||
# Rules for running the tests
|
||||
|
||||
.SUFFIXES: .u .ok .tx59 .hi .ko
|
||||
.SUFFIXES: .u .uue .ok .ok .tx59 .hi .ko .ko
|
||||
.tx59.ok:
|
||||
rm -f tmp-$* $*.hi
|
||||
ulimit -t 5 ; $(RUN_FOR_TARGET) $*.tx59 > tmp-$*
|
||||
@ -179,20 +182,15 @@ sanity:
|
||||
# Rules for building all the tests and packing them into
|
||||
# uuencoded files.
|
||||
|
||||
|
||||
.SUFFIXES: .u .S .tx59
|
||||
.S.u:
|
||||
rm -f $*.o $*.tx59
|
||||
$(AS_FOR_TARGET) $(srcdir)/$*.S -o $*.o
|
||||
$(LD_FOR_TARGET) -o $* $*.o
|
||||
uuencode < $* $* > $*.u
|
||||
rm -f $*.o $*
|
||||
.S.tx59:
|
||||
rm -f $*.o $*.tx59
|
||||
$(AS_FOR_TARGET) $(srcdir)/$*.S -o $*.o
|
||||
$(LD_FOR_TARGET) -o $*.tx59 $*.o
|
||||
rm -f $*.o $*
|
||||
|
||||
.tx59.u:
|
||||
uuencode < $*.tx59 $*.tx59 > $*.u
|
||||
@echo "Move $*.u $*.uue"
|
||||
.uue.tx59:
|
||||
uudecode $(srcdir)/$*.uue
|
||||
.o.tx59:
|
||||
$(LD_FOR_TARGET) -Ttext 0xa0020000 -o $*.tx59 $*.o
|
||||
.s.o:
|
||||
$(AS_FOR_TARGET) -I $(srcdir) $(srcdir)/$*.s -o $*.o
|
||||
|
||||
|
||||
#
|
||||
|
@ -95,6 +95,7 @@
|
||||
.endm
|
||||
|
||||
.macro start
|
||||
.text
|
||||
.globl _start
|
||||
.set noreorder
|
||||
_start:
|
||||
|
10
sim/testsuite/mips64vr5900el-elf/t-pabsh.s
Normal file
10
sim/testsuite/mips64vr5900el-elf/t-pabsh.s
Normal file
@ -0,0 +1,10 @@
|
||||
.include "t-macros.i"
|
||||
|
||||
start
|
||||
|
||||
load $8 0x8000800080008000 0xffffffffffffffff
|
||||
test_pabsh:
|
||||
pabsh $10, $8
|
||||
check10 0x7fff7fff7fff7fff 0x0001000100010001
|
||||
|
||||
exit0
|
10
sim/testsuite/mips64vr5900el-elf/t-pabsw.s
Normal file
10
sim/testsuite/mips64vr5900el-elf/t-pabsw.s
Normal file
@ -0,0 +1,10 @@
|
||||
.include "t-macros.i"
|
||||
|
||||
start
|
||||
|
||||
load $8 0x8000000080000000 0xffffffffffffffff
|
||||
test_pabsw:
|
||||
pabsw $10, $8
|
||||
check10 0x7fffffff7fffffff 0x0000000100000001
|
||||
|
||||
exit0
|
11
sim/testsuite/mips64vr5900el-elf/t-psrlvw.s
Normal file
11
sim/testsuite/mips64vr5900el-elf/t-psrlvw.s
Normal file
@ -0,0 +1,11 @@
|
||||
.include "t-macros.i"
|
||||
|
||||
start
|
||||
|
||||
load $8 0x00ff0000ffff0000 0x0000ffffffff0000
|
||||
load $9 0x00ff0000ffff0000 0x0000ffffffff0000
|
||||
test_psrlvw:
|
||||
psrlvw $10,$8,$9 #Expectation:
|
||||
check10 0xffffffffffff0000 0xffffffffffff0000
|
||||
|
||||
exit0
|
Loading…
Reference in New Issue
Block a user