target/openrisc: Add support for ORFPX64A32

This is hardware support for double-precision floating-point using
pairs of 32-bit registers.  Fix latent bugs in the heretofore unused
helper_itofd and helper_ftoid.  Include the bit for cpu "any".
Change the default cpu for linux-user to "any".

Reviewed-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2019-05-06 14:49:25 -07:00
parent fe636d3722
commit 62f2b0389f
7 changed files with 333 additions and 4 deletions

View file

@ -22,6 +22,9 @@
&ab a b
&dal d a l
&ai a i
&dab_pair d a b dp ap bp
&ab_pair a b ap bp
&da_pair d a dp ap
####
# System Instructions
@ -187,3 +190,31 @@ lf_sfgt_s 110010 ----- a:5 b:5 --- 00001010
lf_sfge_s 110010 ----- a:5 b:5 --- 00001011
lf_sflt_s 110010 ----- a:5 b:5 --- 00001100
lf_sfle_s 110010 ----- a:5 b:5 --- 00001101
####
# DP Instructions
####
@dab_pair ...... d:5 a:5 b:5 dp:1 ap:1 bp:1 ........ &dab_pair
@ab_pair ...... ..... a:5 b:5 . ap:1 bp:1 ........ &ab_pair
@da_pair ...... d:5 a:5 ..... dp:1 ap:1 . ........ &da_pair
lf_add_d 110010 ..... ..... ..... ... 00010000 @dab_pair
lf_sub_d 110010 ..... ..... ..... ... 00010001 @dab_pair
lf_mul_d 110010 ..... ..... ..... ... 00010010 @dab_pair
lf_div_d 110010 ..... ..... ..... ... 00010011 @dab_pair
lf_rem_d 110010 ..... ..... ..... ... 00010110 @dab_pair
lf_madd_d 110010 ..... ..... ..... ... 00010111 @dab_pair
lf_itof_d 110010 ..... ..... 00000 ..0 00010100 @da_pair
lf_ftoi_d 110010 ..... ..... 00000 ..0 00010101 @da_pair
lf_stod_d 110010 d:5 a:5 00000 dp:1 0 0 00110100
lf_dtos_d 110010 d:5 a:5 00000 0 ap:1 0 00110101
lf_sfeq_d 110010 00000 ..... ..... 0.. 00011000 @ab_pair
lf_sfne_d 110010 00000 ..... ..... 0.. 00011001 @ab_pair
lf_sfgt_d 110010 00000 ..... ..... 0.. 00011010 @ab_pair
lf_sfge_d 110010 00000 ..... ..... 0.. 00011011 @ab_pair
lf_sflt_d 110010 00000 ..... ..... 0.. 00011100 @ab_pair
lf_sfle_d 110010 00000 ..... ..... 0.. 00011101 @ab_pair