Print this page
OS-7095 Want risc-v disassembler
*** 9,19 ****
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
! # Copyright 2016 Joyent, Inc.
#
#
# libdis test driver
#
--- 9,19 ----
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
! # Copyright 2018 Joyent, Inc.
#
#
# libdis test driver
#
*** 76,85 ****
--- 76,86 ----
-n Don't run default platform tests
-p platform=pathtoas Run tests for platform using assembler. Should
either be an absolute path or a command on the
path.
USAGE
+ exit 2
}
#
# By default, tests only run for the current platform. In other words,
# running on an x86 system only assumes that the tests in the i386
*** 194,203 ****
--- 195,205 ----
# 64-bit) being run.
#
run_single_file()
{
typeset sfile base cmpfile prefix arch gas p flags
+ typeset asflags32 asflags64
sfile=$1
base=${sfile##*/}
cmpfile=${sfile%.*}.out
prefix=${base%%.*}
*** 205,224 ****
arch=${arch##*/}
[[ -f $cmpfile ]] || fatal "missing output file $cmpfile"
gas=${dt_platforms[$arch]}
[[ -n $gas ]] || fatal "encountered test $sfile, but missing assembler"
case "$prefix" in
32)
! test_one "-32" $sfile $cmpfile
;;
64)
! test_one "-64" $sfile $cmpfile
;;
tst)
! test_one "-32" $sfile $cmpfile "(32-bit)"
! test_one "-64" $sfile $cmpfile "(64-bit)"
;;
esac
}
#
--- 207,241 ----
arch=${arch##*/}
[[ -f $cmpfile ]] || fatal "missing output file $cmpfile"
gas=${dt_platforms[$arch]}
[[ -n $gas ]] || fatal "encountered test $sfile, but missing assembler"
+ case "$arch" in
+ "risc-v")
+ asflags32="-march=rv32g"
+ asflags64="-march=rv64g"
+ ;;
+ "risc-v-c")
+ asflags32="-march=rv32gc"
+ asflags64="-march=rv64gc"
+ ;;
+ *)
+ asflags32="-32"
+ asflags64="-64"
+ ;;
+ esac
+
case "$prefix" in
32)
! test_one $asflags32 $sfile $cmpfile
;;
64)
! test_one $asflags64 $sfile $cmpfile
;;
tst)
! test_one $asflags32 $sfile $cmpfile "(32-bit)"
! test_one $asflags64 $sfile $cmpfile "(64-bit)"
;;
esac
}
#
*** 268,280 ****
case "$c" in
n)
dt_nodefault="y"
;;
p)
IFS="="
set -A split $OPTARG
! IFS=" "
[[ ${#split[@]} -eq 2 ]] || usage "malformed -p option: $OPTARG"
dt_platforms[${split[0]}]=${split[1]}
;;
:)
usage "option requires an argument -- $OPTARG"
--- 285,298 ----
case "$c" in
n)
dt_nodefault="y"
;;
p)
+ OLDIFS=$IFS
IFS="="
set -A split $OPTARG
! IFS=$OLDIFS
[[ ${#split[@]} -eq 2 ]] || usage "malformed -p option: $OPTARG"
dt_platforms[${split[0]}]=${split[1]}
;;
:)
usage "option requires an argument -- $OPTARG"