Updated Golang s390x asm Reference (markdown)

Sun Yimin 2024-08-22 09:46:51 +08:00
parent 1cc6215218
commit 75307f5481

@ -39,8 +39,12 @@ Addressing modes:
- VAC - Vector Add With Carry. 带进位无符号数加法相当于3个数加法。 - VAC - Vector Add With Carry. 带进位无符号数加法相当于3个数加法。
- 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个数加法只有进位结果。
- VS - Vector Substract. 无符号数减法。
- VSBCBI - Vector Substract With Borrow Compute Borrow Indication. 带借位计算借位。
- VSBI - Vector Substract With Borrow Indicator. 带借位减法。
- VSCBI - Vector Substract Compute Borrow Indication. 计算借位。
所以两个数相加要同时使用多个指令。示例演示T1||T0, RED2||RED1两个256位数的加法得到 T2||T1||T0。 所以,两个数相加要同时使用多个指令。下面示例演示 T2||T1||T0 = T1||T0 + RED2||RED1
```asm ```asm
VACCQ T0, RED1, CAR1 VACCQ T0, RED1, CAR1
VAQ T0, RED1, T0 VAQ T0, RED1, T0
@ -49,6 +53,14 @@ Addressing modes:
VAQ T2, CAR2, T2 VAQ T2, CAR2, T2
``` ```
下面示例演示 T2||TT1||TT0 = T2||T1||T0 - ZERO||PH||PL。
```asm
VSCBIQ PL, T0, CAR1
VSQ PL, T0, TT0
VSBCBIQ T1, PH, CAR1, CAR2
VSBIQ T1, PH, CAR1, TT1
VSBIQ T2, ZER, CAR2, T2
```