From 416cfac77679c69ea79ecc207f72a4693186a6ca Mon Sep 17 00:00:00 2001 From: Jiri Gaisler Date: Fri, 27 Nov 2020 16:18:25 +0100 Subject: Add %asr22/23 support to leon3 --- configure | 20 ++++++++++---------- configure.ac | 2 +- sparc.c | 25 +++++++++++++++++++------ version.texi | 8 ++++---- 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/configure b/configure index 2a5c40b..f8c16f9 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sis 2.23. +# Generated by GNU Autoconf 2.69 for sis 2.24. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sis' PACKAGE_TARNAME='sis' -PACKAGE_VERSION='2.23' -PACKAGE_STRING='sis 2.23' +PACKAGE_VERSION='2.24' +PACKAGE_STRING='sis 2.24' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1283,7 +1283,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sis 2.23 to adapt to many kinds of systems. +\`configure' configures sis 2.24 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1354,7 +1354,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sis 2.23:";; + short | recursive ) echo "Configuration of sis 2.24:";; esac cat <<\_ACEOF @@ -1444,7 +1444,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sis configure 2.23 +sis configure 2.24 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1742,7 +1742,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sis $as_me 2.23, which was +It was created by sis $as_me 2.24, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2569,7 +2569,7 @@ fi # Define the identity of the package. PACKAGE='sis' - VERSION='2.23' + VERSION='2.24' cat >>confdefs.h <<_ACEOF @@ -4911,7 +4911,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sis $as_me 2.23, which was +This file was extended by sis $as_me 2.24, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4977,7 +4977,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sis config.status 2.23 +sis config.status 2.24 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 7ace20e..be4ca31 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([sis], [2.23]) +AC_INIT([sis], [2.24]) AC_CONFIG_SRCDIR([sis.c]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS(config.h) diff --git a/sparc.c b/sparc.c index 82a9ed4..9f046ab 100644 --- a/sparc.c +++ b/sparc.c @@ -845,17 +845,27 @@ sparc_dispatch_instruction (sregs) *rdd = sregs->psr; break; case RDY: - *rdd = sregs->y; if (cputype == CPU_LEON3) { - int rs1_is_asr = (sregs->inst >> 14) & 0x1f; - if (0 == rs1_is_asr) - *rdd = sregs->y; - else if (17 == rs1_is_asr) + rs1 = (sregs->inst >> 14) & 0x1f; + switch (rs1) { + case 0: + *rdd = sregs->y; + break; + case 17: *rdd = sregs->asr17; + break; + case 22: + *rdd = (uint32) (sregs->simtime >> 32); + break; + case 23: + *rdd = (uint32) (sregs->simtime & 0xffffffff); + break; } } + else + *rdd = sregs->y; break; case RDWIM: if (!(sregs->psr & PSR_S)) @@ -2058,8 +2068,11 @@ sparc_display_ctrl (struct pstate *sregs) static void sparc_display_special (struct pstate *sregs) { - printf ("\n cache ctrl : %08X\n asr17 : %08X\n\n", + printf ("\n cache ctrl : %08X\n asr17 : %08X", sregs->cache_ctrl, sregs->asr17); + printf ("\n asr22 : %08X\n asr23 : %08X\n\n", + (uint32) (sregs->simtime >> 32), + (uint32) sregs->simtime & 0xffffffff); } static void diff --git a/version.texi b/version.texi index d00f73d..9074a5e 100644 --- a/version.texi +++ b/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 25 October 2020 -@set UPDATED-MONTH October 2020 -@set EDITION 2.23 -@set VERSION 2.23 +@set UPDATED 9 November 2020 +@set UPDATED-MONTH November 2020 +@set EDITION 2.24 +@set VERSION 2.24 -- cgit v1.2.3