Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 1.13 KB

fsurd.adoc

File metadata and controls

49 lines (38 loc) · 1.13 KB

th.fsurd

Synopsis

Store unsigned indexed double-precision floating point value.

Mnemonic

th.fsurd rd, rs1, rs2, imm2

Encoding
{reg:[
    { bits:  7, name: 0xb, attr: ['custom-0, 32 bit'] },
    { bits:  5, name: 'rd' },
    { bits:  3, name: 0x7, attr: ['FMem-Store'] },
    { bits:  5, name: 'rs1' },
    { bits:  5, name: 'rs2' },
    { bits:  2, name: 'imm2' },
    { bits:  5, name: 0x0e },
]}
Description

This instruction stores a double-precision floating point value from FP register rd to the address rs1 + (zero_extend(rs2) << imm2).

Note, that this instruction is equivalent to a zext.w rs2, rs2 followed by a th.fsrd with the same arguments.

Operation
addr := rs1 + (zero_extend(rs2) << imm2)
fmem[addr+7:addr] := rd
Permission

This instruction can be executed in all privilege levels.

Exceptions

This instruction triggers the same exceptions that two corresponding FSD instructions would trigger.

Included in
Extension

XTheadFMemIdx ([xtheadfmemidx])