Go1.22.9 版本发行注记
- 基础版本升级到上游Go1.22.9
- 调整指令F[N]M{ADD/SUB}{F/D}的操作数顺序
- 更新golang.org/x/arch/loong64,添加testcase
- 为loong64定义regABI返回值寄存器
- 将 loong64 上的 cputics 和 switchTocrashStack0 切换到 regABI传参模式
- 新增指令ANDN、ORN、FSCALEB{F/D}、FLOGB{F/D}
- 新增指令{V/XV}LD、{V/XV}LDX、{V/XV}ST、{V/XV}STX、{V/XV}SEQ.{B/H/W/D}
- 新增指令VMOVQ、XVMOVQ、{V/XV}PCNT.{B/H/W/D}、
- 新增指令BITREV4B、BITREV8B、REVH2W、REVHV、EXTWB、EXTWH
- 在loong64上优化Store{64/32/8}
- 在loong64上优化函数stacksplit
- 使用 NOSPLIT 标记具有小堆栈的函数
- 在 loong64 上折叠 MOVnop 和 MOVconst
- 为runtime.memmove添加loong64特定的内联
- 在loong64 上添加bitfield opcodes规则
- 在loong64 上折叠常量移位规则
- 修复 loong64 上 func rshConst32Ux64 的纯注释中的匹配指令
- 使用寄存器索引加载/存储优化loong64
- 添加规则以优化 loong64 上的 go 代码为常量 0
- 在loong64上对常量小于512的情况启用memclrNoHeapPointers calls内联
- 在loong64上优化math/bits.OnesCount{16/32/64}
- 在loong64上优化宏CALLFN
- 删除 Cas 中多余的寄存器分配限制
- 更新golang.org/x/arch,解决self-assignment问题
- 修复 fmt.Sprintf 格式中 arg reg 的错误类型
- 在loong64 上优化 int32 和 uint32 的移位
- 在loong64上简化有界移位
- 为loong64上的syscall和其它sys.stuff启用ABIInternal
- 在loong64上修复函数exitThread使用的栅障指令
- 对所有的loong64符号和零扩展使用单指令形式
- 在loong64上对立即数加载进行优化