diff --git a/Golang-ppc64-asm-Reference.md b/Golang-ppc64-asm-Reference.md index 50a7100..c8cc91f 100644 --- a/Golang-ppc64-asm-Reference.md +++ b/Golang-ppc64-asm-Reference.md @@ -10,6 +10,14 @@ - VADDEUQM,对应s390x的VACQ,带进位加,两个数和进位的总和的低128位。 (中间的Q代表位宽) +所以,两个数相加要同时使用多个指令。下面示例演示 T2||T1||T0 = T1||T0 + RED2||RED1。 +```asm + VADDCUQ T0, RED1, CAR1 // VACCQ T0, RED1, CAR1 + VADDUQM T0, RED1, T0 // VAQ T0, RED1, T0 + VADDECUQ T1, RED2, CAR1, CAR2 // VACCCQ T1, RED2, CAR1, CAR2 + VADDEUQM T1, RED2, CAR1, T1 // VACQ T1, RED2, CAR1, T1 + VADDUQM T2, CAR2, T2 // VAQ T2, CAR2, T2 +``` ### 减法 - VSUBCUQ,对应s390x的VSCBIQ,计算借位 - VSUBUQM,对应s390x的VSQ,计算两数之差,结果是差值的低128位。