aboutsummaryrefslogtreecommitdiff
path: root/src/arch/riscv64/Encoding.zig
diff options
context:
space:
mode:
authorDavid Rubin <daviru007@icloud.com>2024-05-25 14:15:21 -0700
committerDavid Rubin <daviru007@icloud.com>2024-06-13 02:22:06 -0700
commitd69c48370a0381c7dce463c68b2097dd8fa67eb7 (patch)
treea5f2fc954e7bd6b73164c8ef1c8742b5f2827649 /src/arch/riscv64/Encoding.zig
parent206e66858c69cd667aad3779837493968bfcd228 (diff)
downloadzig-d69c48370a0381c7dce463c68b2097dd8fa67eb7.tar.gz
zig-d69c48370a0381c7dce463c68b2097dd8fa67eb7.zip
riscv: integer + float `@abs`
Diffstat (limited to 'src/arch/riscv64/Encoding.zig')
-rw-r--r--src/arch/riscv64/Encoding.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/riscv64/Encoding.zig b/src/arch/riscv64/Encoding.zig
index a944cac634..6f412935e4 100644
--- a/src/arch/riscv64/Encoding.zig
+++ b/src/arch/riscv64/Encoding.zig
@@ -130,6 +130,7 @@ pub const Mnemonic = enum {
fles,
fsgnjns,
+ fsgnjxs,
// D extension (64-bit float)
faddd,
@@ -150,6 +151,7 @@ pub const Mnemonic = enum {
fled,
fsgnjnd,
+ fsgnjxd,
pub fn encoding(mnem: Mnemonic) Enc {
return switch (mnem) {
@@ -218,6 +220,9 @@ pub const Mnemonic = enum {
.fsgnjns => .{ .opcode = .OP_FP, .data = .{ .fmt = .{ .funct5 = 0b00100, .fmt = .S, .rm = 0b000 } } },
.fsgnjnd => .{ .opcode = .OP_FP, .data = .{ .fmt = .{ .funct5 = 0b00100, .fmt = .D, .rm = 0b000 } } },
+ .fsgnjxs => .{ .opcode = .OP_FP, .data = .{ .fmt = .{ .funct5 = 0b00100, .fmt = .S, .rm = 0b0010} } },
+ .fsgnjxd => .{ .opcode = .OP_FP, .data = .{ .fmt = .{ .funct5 = 0b00100, .fmt = .D, .rm = 0b0010} } },
+
// LOAD
@@ -392,6 +397,9 @@ pub const InstEnc = enum {
.fsgnjns,
.fsgnjnd,
+
+ .fsgnjxs,
+ .fsgnjxd,
=> .R,
.ecall,