Source code
Revision control
Copy as Markdown
Other Tools
// Copyright 2022 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef jit_riscv64_constant_Constant_riscv64_zfh_h_
#define jit_riscv64_constant_Constant_riscv64_zfh_h_
#include "jit/riscv64/constant/Base-constant-riscv.h"
namespace js::jit {
enum OpcodeRISCVZFH : uint32_t {
// RV32F Standard Extension
RO_FLH = LOAD_FP | (0b001 << kFunct3Shift),
RO_FSH = STORE_FP | (0b001 << kFunct3Shift),
RO_FMADD_H = MADD | (0b10 << kFunct2Shift),
RO_FMSUB_H = MSUB | (0b10 << kFunct2Shift),
RO_FNMSUB_H = NMSUB | (0b10 << kFunct2Shift),
RO_FNMADD_H = NMADD | (0b10 << kFunct2Shift),
RO_FADD_H = OP_FP | (0b0000010 << kFunct7Shift),
RO_FSUB_H = OP_FP | (0b0000110 << kFunct7Shift),
RO_FMUL_H = OP_FP | (0b0001010 << kFunct7Shift),
RO_FDIV_H = OP_FP | (0b0001110 << kFunct7Shift),
RO_FSQRT_H = OP_FP | (0b0101110 << kFunct7Shift) | (0b00000 << kRs2Shift),
RO_FSGNJ_H = OP_FP | (0b000 << kFunct3Shift) | (0b0010010 << kFunct7Shift),
RO_FSGNJN_H = OP_FP | (0b001 << kFunct3Shift) | (0b0010010 << kFunct7Shift),
RO_FSQNJX_H = OP_FP | (0b010 << kFunct3Shift) | (0b0010010 << kFunct7Shift),
RO_FMIN_H = OP_FP | (0b000 << kFunct3Shift) | (0b0010110 << kFunct7Shift),
RO_FMAX_H = OP_FP | (0b001 << kFunct3Shift) | (0b0010110 << kFunct7Shift),
RO_FCVT_W_H = OP_FP | (0b1100010 << kFunct7Shift) | (0b00000 << kRs2Shift),
RO_FCVT_WU_H = OP_FP | (0b1100010 << kFunct7Shift) | (0b00001 << kRs2Shift),
RO_FMV_X_H = OP_FP | (0b1110010 << kFunct7Shift) | (0b000 << kFunct3Shift) |
(0b00000 << kRs2Shift),
RO_FEQ_H = OP_FP | (0b010 << kFunct3Shift) | (0b1010010 << kFunct7Shift),
RO_FLT_H = OP_FP | (0b001 << kFunct3Shift) | (0b1010010 << kFunct7Shift),
RO_FLE_H = OP_FP | (0b000 << kFunct3Shift) | (0b1010010 << kFunct7Shift),
RO_FCLASS_H = OP_FP | (0b001 << kFunct3Shift) | (0b1110010 << kFunct7Shift),
RO_FMV_H_X = OP_FP | (0b000 << kFunct3Shift) | (0b1111010 << kFunct7Shift),
RO_FCVT_H_W = OP_FP | (0b1101010 << kFunct7Shift) | (0b00000 << kRs2Shift),
RO_FCVT_H_WU = OP_FP | (0b1101010 << kFunct7Shift) | (0b00001 << kRs2Shift),
RO_FCVT_D_H = OP_FP | (0b0100001 << kFunct7Shift) | (0b00010 << kRs2Shift),
RO_FCVT_S_H = OP_FP | (0b0100000 << kFunct7Shift) | (0b00010 << kRs2Shift),
RO_FCVT_H_D = OP_FP | (0b0100010 << kFunct7Shift) | (0b00001 << kRs2Shift),
RO_FCVT_H_S = OP_FP | (0b0100010 << kFunct7Shift) | (0b00000 << kRs2Shift),
// RV64F Standard Extension (in addition to RV32F)
RO_FCVT_L_H = OP_FP | (0b1100010 << kFunct7Shift) | (0b00010 << kRs2Shift),
RO_FCVT_LU_H = OP_FP | (0b1100010 << kFunct7Shift) | (0b00011 << kRs2Shift),
RO_FCVT_H_L = OP_FP | (0b1101010 << kFunct7Shift) | (0b00010 << kRs2Shift),
RO_FCVT_H_LU = OP_FP | (0b1101010 << kFunct7Shift) | (0b00011 << kRs2Shift),
};
} // namespace js::jit
#endif // jit_riscv64_constant_Constant_riscv64_zfh_h_