我们都知道MIPS FPU有两个精度,单或双。当我在指令集中查看它时,我发现相同的操作,单精度和双精度的指令没有区别。
例如,这里来自MIPS Architecture For Programmers Volume II:,指令ADD.fmt
无论是双精度还是单精度,操作数和功能代码都是相同的。解码器如何知道它是单精度还是双精度指令?或者5位fmt区域中的任何隐藏信息?我无法从谷歌找到任何好的答案,有人可以解释这个指令是如何工作的吗?
答案 0 :(得分:3)
MIPS文档在“FPU操作数格式字段”下有详细说明。 fmt
字段包含该特定数据。
fmt
字段长度为5位,可以采用以下值:
0-15: reserved
16: single
17: double
18-19: reserved
20: word
21: long
22-31: reserved
对于ADD.S和ADD.D,Word和Long 未实现。