Chromium Code Reviews| Index: nss/lib/freebl/intel-gcm-x86-masm.asm |
| diff --git a/nss/lib/freebl/intel-gcm-x86-masm.asm b/nss/lib/freebl/intel-gcm-x86-masm.asm |
| index d8ba9b4961cf26a073905d760111755efe6f7058..4767aa52d0a224b2c55b7740d7bbd3355d4aeecf 100644 |
| --- a/nss/lib/freebl/intel-gcm-x86-masm.asm |
| +++ b/nss/lib/freebl/intel-gcm-x86-masm.asm |
| @@ -839,12 +839,13 @@ LEncDataTail: |
| vpxor TMP2, TMP2, TMP2 |
| vmovdqa XMMWORD PTR[esp], TMP2 |
| ; copy as many bytes as needed |
| + mov edi, edx |
|
wtc
2014/04/30 02:00:50
The code below uses the 8-bit dl register (which i
|
| xor KS, KS |
| @@: |
| cmp len, KS |
| je @f |
| - mov di, [PT + KS] |
| - mov [esp + KS], di |
|
wtc
2014/04/30 02:00:50
Here we want to copy one byte at a time. Because o
agl
2014/04/30 17:38:11
I think this can be fixed with just:
mov di, BYTE
wtc
2014/04/30 21:27:21
Thanks for the suggestion. MASM doesn't allow
|
| + mov dl, BYTE PTR[PT + KS] |
| + mov BYTE PTR[esp + KS], dl |
| inc KS |
| jmp @b |
| @@: |
| @@ -854,8 +855,8 @@ LEncDataTail: |
| @@: |
| cmp len, KS |
| je @f |
| - mov di, [esp + KS] |
| - mov [CT + KS], di |
| + mov dl, BYTE PTR[esp + KS] |
| + mov BYTE PTR[CT + KS], dl |
| inc KS |
| jmp @b |
| @@: |
| @@ -865,6 +866,7 @@ LEncDataTail: |
| inc KS |
| jmp @b |
| @@: |
| + mov edx, edi |
|
wtc
2014/04/30 02:00:50
Here we restore the value of edx because we will u
|
| vmovdqa TMP1, XMMWORD PTR[esp] |
| vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] |
| @@ -1149,12 +1151,13 @@ LDecDataTail: |
| vaesenclast xmm7, TMP1, TMP2 |
| ; copy as many bytes as needed |
| + mov edi, edx |
| xor KS, KS |
| @@: |
| cmp len, KS |
| je @f |
| - mov di, [CT + KS] |
| - mov [esp + KS], di |
| + mov dl, BYTE PTR[CT + KS] |
| + mov BYTE PTR[esp + KS], dl |
| inc KS |
| jmp @b |
| @@: |
| @@ -1165,6 +1168,7 @@ LDecDataTail: |
| jmp @b |
| @@: |
| + mov edx, edi |
|
wtc
2014/04/30 02:00:50
Here we restore the value of edx because we will u
|
| vmovdqa TMP1, XMMWORD PTR[esp] |
| vpshufb TMP1, TMP1, XMMWORD PTR[Lbswap_mask] |
| vpxor TMP1, TMP1, T |
| @@ -1176,21 +1180,17 @@ LDecDataTail: |
| vpxor xmm7, xmm7, XMMWORD PTR[esp] |
| vmovdqa XMMWORD PTR[esp], xmm7 |
| + mov edi, edx |
| xor KS, KS |
| @@: |
| cmp len, KS |
| je @f |
| - mov di, [esp + KS] |
| - mov [PT + KS], di |
| - inc KS |
| - jmp @b |
| -@@: |
| - cmp KS, 16 |
| - je @f |
| - mov BYTE PTR[PT + KS], 0 |
| + mov dl, BYTE PTR[esp + KS] |
| + mov BYTE PTR[PT + KS], dl |
| inc KS |
| jmp @b |
|
wtc
2014/04/30 02:00:50
This block of code seems to be a copy and paste er
|
| @@: |
| + mov edx, edi |
| LDecDataEnd: |