|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH 11/18] target-riscv: Add Double Precision Floating-Point Instructions |
Date: | Mon, 26 Sep 2016 14:37:32 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
On 09/26/2016 03:56 AM, Sagar Karandikar wrote:
+ case OPC_RISC_FSGNJ_D: + /* also OPC_RISC_FSGNJN_D, OPC_RISC_FSGNJX_D */ + if (rm == 0x0) { + gen_helper_fsgnj_d(cpu_fpr[rd], cpu_env, cpu_fpr[rs1], + cpu_fpr[rs2]); + } else if (rm == 0x1) { + gen_helper_fsgnjn_d(cpu_fpr[rd], cpu_env, cpu_fpr[rs1], + cpu_fpr[rs2]); + } else if (rm == 0x2) { + gen_helper_fsgnjx_d(cpu_fpr[rd], cpu_env, cpu_fpr[rs1], + cpu_fpr[rs2]); + } else { + kill_unknown(ctx, RISCV_EXCP_ILLEGAL_INST); + }
I forgot to mention this for single-precision -- given that FMOV is an alias of FSGNJ, you should special case rs1 == rs2.
r~
[Prev in Thread] | Current Thread | [Next in Thread] |