Value *resultValue = newTempValue(ValueType::ValueType_Int); // 创建临时变量保存IR的值,以及线性IR指令 node->blockInsts.addInst(left->blockInsts); node->blockInsts.addInst(right->blockInsts); node->blockInsts.addInst( new BinaryIRInst(IRINST_OP_SUB, resultValue, left->val, right->val)); node->val = resultValue;改成可以支持实数类型的
时间: 2024-02-11 13:08:49 浏览: 103
可以将 `ValueType_Int` 改为 `ValueType_Float`,并将 `IRINST_OP_SUB` 改为 `IRINST_OP_FSUB`,这样就可以支持实数类型了。修改后的代码如下:
```
Value *resultValue = newTempValue(ValueType::ValueType_Float); // 改为实数类型
node->blockInsts.addInst(left->blockInsts);
node->blockInsts.addInst(right->blockInsts);
node->blockInsts.addInst(
new BinaryIRInst(IRINST_OP_FSUB, resultValue, left->val, right->val)); // 改为实数减法
node->val = resultValue;
```
阅读全文