|
@@ -33,7 +33,7 @@
|
|
|
#define s3 ((16 + 2 + (3 * 256)) * 4)
|
|
|
|
|
|
/* register macros */
|
|
|
-#define CTX %rdi
|
|
|
+#define CTX %r12
|
|
|
#define RIO %rsi
|
|
|
|
|
|
#define RX0 %rax
|
|
@@ -56,12 +56,12 @@
|
|
|
#define RX2bh %ch
|
|
|
#define RX3bh %dh
|
|
|
|
|
|
-#define RT0 %rbp
|
|
|
+#define RT0 %rdi
|
|
|
#define RT1 %rsi
|
|
|
#define RT2 %r8
|
|
|
#define RT3 %r9
|
|
|
|
|
|
-#define RT0d %ebp
|
|
|
+#define RT0d %edi
|
|
|
#define RT1d %esi
|
|
|
#define RT2d %r8d
|
|
|
#define RT3d %r9d
|
|
@@ -120,13 +120,14 @@
|
|
|
|
|
|
ENTRY(__blowfish_enc_blk)
|
|
|
/* input:
|
|
|
- * %rdi: ctx, CTX
|
|
|
+ * %rdi: ctx
|
|
|
* %rsi: dst
|
|
|
* %rdx: src
|
|
|
* %rcx: bool, if true: xor output
|
|
|
*/
|
|
|
- movq %rbp, %r11;
|
|
|
+ movq %r12, %r11;
|
|
|
|
|
|
+ movq %rdi, CTX;
|
|
|
movq %rsi, %r10;
|
|
|
movq %rdx, RIO;
|
|
|
|
|
@@ -142,7 +143,7 @@ ENTRY(__blowfish_enc_blk)
|
|
|
round_enc(14);
|
|
|
add_roundkey_enc(16);
|
|
|
|
|
|
- movq %r11, %rbp;
|
|
|
+ movq %r11, %r12;
|
|
|
|
|
|
movq %r10, RIO;
|
|
|
test %cl, %cl;
|
|
@@ -157,12 +158,13 @@ ENDPROC(__blowfish_enc_blk)
|
|
|
|
|
|
ENTRY(blowfish_dec_blk)
|
|
|
/* input:
|
|
|
- * %rdi: ctx, CTX
|
|
|
+ * %rdi: ctx
|
|
|
* %rsi: dst
|
|
|
* %rdx: src
|
|
|
*/
|
|
|
- movq %rbp, %r11;
|
|
|
+ movq %r12, %r11;
|
|
|
|
|
|
+ movq %rdi, CTX;
|
|
|
movq %rsi, %r10;
|
|
|
movq %rdx, RIO;
|
|
|
|
|
@@ -181,7 +183,7 @@ ENTRY(blowfish_dec_blk)
|
|
|
movq %r10, RIO;
|
|
|
write_block();
|
|
|
|
|
|
- movq %r11, %rbp;
|
|
|
+ movq %r11, %r12;
|
|
|
|
|
|
ret;
|
|
|
ENDPROC(blowfish_dec_blk)
|
|
@@ -298,20 +300,21 @@ ENDPROC(blowfish_dec_blk)
|
|
|
|
|
|
ENTRY(__blowfish_enc_blk_4way)
|
|
|
/* input:
|
|
|
- * %rdi: ctx, CTX
|
|
|
+ * %rdi: ctx
|
|
|
* %rsi: dst
|
|
|
* %rdx: src
|
|
|
* %rcx: bool, if true: xor output
|
|
|
*/
|
|
|
- pushq %rbp;
|
|
|
+ pushq %r12;
|
|
|
pushq %rbx;
|
|
|
pushq %rcx;
|
|
|
|
|
|
- preload_roundkey_enc(0);
|
|
|
-
|
|
|
+ movq %rdi, CTX
|
|
|
movq %rsi, %r11;
|
|
|
movq %rdx, RIO;
|
|
|
|
|
|
+ preload_roundkey_enc(0);
|
|
|
+
|
|
|
read_block4();
|
|
|
|
|
|
round_enc4(0);
|
|
@@ -324,39 +327,40 @@ ENTRY(__blowfish_enc_blk_4way)
|
|
|
round_enc4(14);
|
|
|
add_preloaded_roundkey4();
|
|
|
|
|
|
- popq %rbp;
|
|
|
+ popq %r12;
|
|
|
movq %r11, RIO;
|
|
|
|
|
|
- test %bpl, %bpl;
|
|
|
+ test %r12b, %r12b;
|
|
|
jnz .L__enc_xor4;
|
|
|
|
|
|
write_block4();
|
|
|
|
|
|
popq %rbx;
|
|
|
- popq %rbp;
|
|
|
+ popq %r12;
|
|
|
ret;
|
|
|
|
|
|
.L__enc_xor4:
|
|
|
xor_block4();
|
|
|
|
|
|
popq %rbx;
|
|
|
- popq %rbp;
|
|
|
+ popq %r12;
|
|
|
ret;
|
|
|
ENDPROC(__blowfish_enc_blk_4way)
|
|
|
|
|
|
ENTRY(blowfish_dec_blk_4way)
|
|
|
/* input:
|
|
|
- * %rdi: ctx, CTX
|
|
|
+ * %rdi: ctx
|
|
|
* %rsi: dst
|
|
|
* %rdx: src
|
|
|
*/
|
|
|
- pushq %rbp;
|
|
|
+ pushq %r12;
|
|
|
pushq %rbx;
|
|
|
- preload_roundkey_dec(17);
|
|
|
|
|
|
- movq %rsi, %r11;
|
|
|
+ movq %rdi, CTX;
|
|
|
+ movq %rsi, %r11
|
|
|
movq %rdx, RIO;
|
|
|
|
|
|
+ preload_roundkey_dec(17);
|
|
|
read_block4();
|
|
|
|
|
|
round_dec4(17);
|
|
@@ -373,7 +377,7 @@ ENTRY(blowfish_dec_blk_4way)
|
|
|
write_block4();
|
|
|
|
|
|
popq %rbx;
|
|
|
- popq %rbp;
|
|
|
+ popq %r12;
|
|
|
|
|
|
ret;
|
|
|
ENDPROC(blowfish_dec_blk_4way)
|