Can FLI.D load any floating-point constant?
No. It can select only the 32 table entries defined by Zfa.
Load one double-precision floating-point constant from the 32-entry Zfa constant table.
FLI.D selects one double-precision constant from the 32-entry Zfa floating-point constant table encoded by the instruction rs1 field and writes it to f[rd]. It is not an arbitrary immediate encoding; entry 1 is the target format's minimum positive normal number, entry 30 is +inf, and entry 31 is canonical NaN. Loading the constant sets no floating-point exception flags.
FLI.D answers whether common floating-point constants can be loaded without a memory literal pool. It can load only constants from the official 32-entry table, not arbitrary binary floating literals.
Understand this scenario with real code like «fli.d f0, 1.0 # f0 = 1.0 (uses rs1=16)».
Understand this scenario with real code like «fli.d f0, 1.0 # f0 = 1.0 (uses rs1=16)».
No. It can select only the 32 table entries defined by Zfa.
The assembler maps an accepted constant name or value to a 0-31 table index in the rs1 field.