Commit e99f010
committed
umash.c: add support for aarch64 + crypto extensions
The only vector operations we use (all on 128 bits) are:
1. creating a vector from 64-bit values
2. shifting 64-bit lanes by one bit to the left
3. carry-less multiplication of two 64-bit scalars into 128-bit vector
4. carry-less multiplication of the low and high halves of a vector
5. xoring vectors together
That's easy to convert to neon with the crypto extension for
`vmull_p64` (and aarch64 for 64x64 -> 128 multiplications).1 parent fc5bfab commit e99f010
2 files changed
+44
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| 15 | + | |
14 | 16 | | |
15 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
16 | 23 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
45 | 78 | | |
46 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
47 | 82 | | |
48 | 83 | | |
49 | 84 | | |
| |||
0 commit comments