代码拉取完成,页面将自动刷新
同步操作将从 秋来冬风/U语言 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package amd64
import (
"gitee.com/u-language/u-language/pkg/ast"
)
// 设置栈中变量
func StackSetVar(to *AstToAsm, offset int64, name string, value string, sbt *ast.Sbt, vreg *VReg) TextNode {
var ret = make([]TextNode, 0, 2)
info := sbt.Have(name)
switch info.Type() {
case "int":
ret = append(ret, NewSrcNumDestRegOffset(RBP, value, -offset, MOV))
case "float":
data := NewAutoData(value, 4)
to.Datas.Add(data)
xmm1 := vreg.GetSSEReg()
ret = append(ret, NewSrcMemDestReg(xmm1, data.Name, MOVSS))
ret = append(ret, NewSrcRegDestRegOffset(RBP, xmm1, -offset, MOVSS))
}
return NewStackVarMovKind(ret)
}
func SetVar(to *AstToAsm, name, value string, sbt *ast.Sbt, vreg *VReg) TextNode {
var ret = make([]TextNode, 0, 2)
info := sbt.Have(name)
switch info.Type() {
case "int":
ret = append(ret, NewSrcNumDestMem(name, value, MOV))
case "float":
data := NewAutoData(value, 4)
to.Datas.Add(data)
xmm1 := vreg.GetSSEReg()
ret = append(ret, NewSrcMemDestReg(xmm1, data.Name, MOVSS))
ret = append(ret, NewSrcRegDestMem(name, xmm1, MOVSS))
}
return NewVarMovKind(ret)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。