|
27 | 27 | #define POLY V15 |
28 | 28 | #define ZERO V16 |
29 | 29 |
|
| 30 | +#define reduce() \ |
| 31 | + VEOR ACC0.B16, ACCM.B16, ACCM.B16 \ |
| 32 | + VEOR ACC1.B16, ACCM.B16, ACCM.B16 \ |
| 33 | + VEXT $8, ZERO.B16, ACCM.B16, T0.B16 \ |
| 34 | + VEXT $8, ACCM.B16, ZERO.B16, ACCM.B16 \ |
| 35 | + VEOR ACCM.B16, ACC0.B16, ACC0.B16 \ |
| 36 | + VEOR T0.B16, ACC1.B16, ACC1.B16 \ |
| 37 | + VPMULL POLY.D1, ACC0.D1, T0.Q1 \ |
| 38 | + VEXT $8, ACC0.B16, ACC0.B16, ACC0.B16 \ |
| 39 | + VEOR T0.B16, ACC0.B16, ACC0.B16 \ |
| 40 | + VPMULL POLY.D1, ACC0.D1, T0.Q1 \ |
| 41 | + VEOR T0.B16, ACC1.B16, ACC1.B16 \ |
| 42 | + VEXT $8, ACC1.B16, ACC1.B16, ACC1.B16 \ |
| 43 | + VEOR ACC1.B16, ACC0.B16, ACC0.B16 \ |
| 44 | + |
30 | 45 | // func polyvalTableInitAsm(h *[16]byte, table *polyvalAsmTable) |
31 | 46 | TEXT ·polyvalTableInitAsm(SB), NOSPLIT, $0-16 |
32 | 47 | #define pTbl R0 |
33 | 48 | #define hPtr R1 |
34 | 49 | #define I R2 |
35 | 50 |
|
36 | | - MOVD hPtr+0(FP), hPtr |
| 51 | + MOVD h+0(FP), hPtr |
37 | 52 | MOVD productTable+8(FP), pTbl |
38 | 53 | |
39 | 54 | VLD1 (hPtr), [B0.B16] |
|
0 commit comments