Updated Golang s390x asm Reference (markdown)

Sun Yimin 2024-08-21 11:50:11 +08:00
parent 63463fd1a5
commit 9879d3b2a3

@ -25,12 +25,12 @@ Addressing modes:
## Reference ## Reference
* https://github.com/golang/go/blob/master/src/cmd/internal/obj/s390x/vector.go * https://github.com/golang/go/blob/master/src/cmd/internal/obj/s390x/vector.go
## Element Size (这一点还没搞清楚) ## Element Size
* B * B -
* H * H -
* F * F -
* G * G -
* Q * Q - 当作2个64位值
## 算术加减法 ## 算术加减法
* VA - Vector Add. 无符号整数加法。 * VA - Vector Add. 无符号整数加法。
@ -38,7 +38,7 @@ Addressing modes:
* VACC - Vector Add Compute Carry. 无符号整数加法,计算进位。只有进位结果。 * VACC - Vector Add Compute Carry. 无符号整数加法,计算进位。只有进位结果。
* VACCC - Vector Add With Carry Compute Carry. 带进位无符号整数加法计算进位。相当于3个数加法只有进位结果。 * VACCC - Vector Add With Carry Compute Carry. 带进位无符号整数加法计算进位。相当于3个数加法只有进位结果。
所以两个数相加要同时使用多个指令。示例演示T1||T0, RED2||RED1两个256位数的加法得到 T2||T1||T0。 所以两个数相加要同时使用多个指令。示例演示T1||T0, RED2||RED1两个256位数的加法按64位值,得到 T2||T1||T0。
```asm ```asm
VACCQ T0, RED1, CAR1 VACCQ T0, RED1, CAR1
VAQ T0, RED1, T0 VAQ T0, RED1, T0