new对象(short、byte数组)改为调用JCSystem.makeTransientXxxArray放到ram里面;
makeTransientXxxArray类型改为MEMORY_TYPE_TRANSIENT_RESETMEMORY_TYPE_TRANSIENT_RESET
This commit is contained in:
@@ -143,12 +143,12 @@ public class Zuc256Core {
|
||||
// a += (long)LFSR[13] << 17;
|
||||
// a += (long)LFSR[15] << 15;
|
||||
// ---- 先准备累加器 A (64位) ----
|
||||
short[] A = new short[4]; // 64位累加器,初始全0
|
||||
short[] A = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET); // 64位累加器,初始全0
|
||||
A[0] = 0; A[1] = 0; A[2] = 0; A[3] = 0;
|
||||
|
||||
// 临时缓冲
|
||||
short[] tmp32 = new short[2]; // 保存一个32位数 (lo,hi)
|
||||
short[] tmp64 = new short[4]; // 保存移位后的64位数
|
||||
short[] tmp32 = JCSystem.makeTransientShortArray((short)2, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);; // 保存一个32位数 (lo,hi)
|
||||
short[] tmp64 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);; // 保存移位后的64位数
|
||||
|
||||
// a = LFSR[0]
|
||||
tmp32[0] = state.LFSR_lo[0];
|
||||
@@ -186,8 +186,8 @@ public class Zuc256Core {
|
||||
|
||||
// a = (a & 0x7FFFFFFF) + (a >>> 31);
|
||||
// ---- 第一次折叠:a = (a & 0x7FFFFFFF) + (a >>> 31) ----
|
||||
short[] low31 = new short[4];
|
||||
short[] r31 = new short[4];
|
||||
short[] low31 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
short[] r31 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
|
||||
and64_7FFFFFFF_to32(A, low31); // low31 = A & 0x7FFFFFFF
|
||||
shr64u_31(A, r31); // r31 = A >>> 31
|
||||
@@ -197,9 +197,9 @@ public class Zuc256Core {
|
||||
add64(A, r31);
|
||||
// int v = (int) ((a & 0x7FFFFFFF) + (a >>> 31));
|
||||
// ---- 第二次折叠,得到 v(32位)----
|
||||
short[] low31b = new short[4];
|
||||
short[] r31b = new short[4];
|
||||
short[] v64 = new short[4];
|
||||
short[] low31b = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
short[] r31b = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
short[] v64 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);
|
||||
|
||||
and64_7FFFFFFF_to32(A, low31b);
|
||||
shr64u_31(A, r31b);
|
||||
@@ -303,7 +303,7 @@ public class Zuc256Core {
|
||||
Zuc256Tables.getDRow(row, D, (short)0);
|
||||
|
||||
|
||||
short[] tmp = new short[2]; // 临时存储 makeU31 输出 (lo,hi)
|
||||
short[] tmp = JCSystem.makeTransientShortArray((short)2, JCSystem.MEMORY_TYPE_TRANSIENT_RESET); // 临时存储 makeU31 输出 (lo,hi)
|
||||
|
||||
// 逐项装载 LFSR
|
||||
// LFSR[0] = makeU31(K[0] & 0xFF, D[0], K[21] & 0xFF, K[16] & 0xFF);
|
||||
@@ -524,9 +524,9 @@ public class Zuc256Core {
|
||||
R2);
|
||||
|
||||
// ---- LFSRWithWorkMode ----
|
||||
short[] A = new short[4]; // 64位累加器
|
||||
short[] tmp32 = new short[2];
|
||||
short[] tmp64 = new short[4];
|
||||
short[] A = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);; // 64位累加器
|
||||
short[] tmp32 = JCSystem.makeTransientShortArray((short)2, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);;
|
||||
short[] tmp64 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);;
|
||||
|
||||
// LFSRWithWorkMode
|
||||
// long a = LFSR[0];
|
||||
@@ -554,19 +554,19 @@ public class Zuc256Core {
|
||||
create_64b_from_32b(tmp64, tmp32, (short)15); add64(A, tmp64);
|
||||
|
||||
// a = (a & 0x7FFFFFFF) + (a >>> 31);
|
||||
short[] low31 = new short[4];
|
||||
short[] r31 = new short[4];
|
||||
short[] low31 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);;
|
||||
short[] r31 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);;
|
||||
and64_7FFFFFFF_to32(A, low31);
|
||||
shr64u_31(A, r31);
|
||||
|
||||
short[] v64 = new short[4];
|
||||
short[] v64 = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);;
|
||||
add64(v64, low31);
|
||||
add64(v64, r31);
|
||||
|
||||
// int v = (int) ((a & 0x7FFFFFFF) + (a >>> 31));
|
||||
and64_7FFFFFFF_to32(v64, low31);
|
||||
shr64u_31(v64, r31);
|
||||
short[] vv = new short[4];
|
||||
short[] vv = JCSystem.makeTransientShortArray((short)4, JCSystem.MEMORY_TYPE_TRANSIENT_RESET);;
|
||||
add64(vv, low31);
|
||||
add64(vv, r31);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user