mirror of
https://git.wownero.com/wownero/RandomWOW.git
synced 2024-08-15 00:23:14 +00:00
Simplified CALL and RET
This commit is contained in:
parent
557241cd95
commit
e487092f07
3 changed files with 176 additions and 382 deletions
|
@ -506,28 +506,19 @@ namespace RandomX {
|
|||
|
||||
void AssemblyGeneratorX86::h_CALL(Instruction& instr, int i) {
|
||||
genar(instr, i);
|
||||
asmCode << "\tcmp " << regR32[instr.regb % RegistersCount] << ", " << instr.imm32 << std::endl;
|
||||
asmCode << "\t" << jumpCondition(instr);
|
||||
asmCode << " short taken_call_" << i << std::endl;
|
||||
gencr(instr);
|
||||
asmCode << "\tjmp rx_i_" << wrapInstr(i + 1) << std::endl;
|
||||
asmCode << "taken_call_" << i << ":" << std::endl;
|
||||
if (trace) {
|
||||
asmCode << "\tmov qword ptr [" << regScratchpadAddr << " + " << regIc << " * 8 + 262136], rax" << std::endl;
|
||||
}
|
||||
asmCode << "\tpush rax" << std::endl;
|
||||
asmCode << "\tcmp " << regR32[instr.regb % RegistersCount] << ", " << instr.imm32 << std::endl;
|
||||
asmCode << "\t" << jumpCondition(instr, true);
|
||||
asmCode << " short rx_i_" << wrapInstr(i + 1) << std::endl;
|
||||
asmCode << "\tcall rx_i_" << wrapInstr(i + (instr.imm8 & 127) + 2) << std::endl;
|
||||
}
|
||||
|
||||
void AssemblyGeneratorX86::h_RET(Instruction& instr, int i) {
|
||||
genar(instr, i);
|
||||
gencr(instr);
|
||||
asmCode << "\tcmp rsp, " << regStackBeginAddr << std::endl;
|
||||
asmCode << "\tje short not_taken_ret_" << i << std::endl;
|
||||
asmCode << "\txor rax, qword ptr [rsp + 8]" << std::endl;
|
||||
gencr(instr);
|
||||
asmCode << "\tret 8" << std::endl;
|
||||
asmCode << "not_taken_ret_" << i << ":" << std::endl;
|
||||
gencr(instr);
|
||||
asmCode << "\tje short rx_i_" << wrapInstr(i + 1) << std::endl;
|
||||
asmCode << "\tret" << std::endl;
|
||||
}
|
||||
|
||||
#include "instructionWeights.hpp"
|
||||
|
|
|
@ -623,19 +623,12 @@ namespace RandomX {
|
|||
|
||||
void JitCompilerX86::h_CALL(Instruction& instr, int i) {
|
||||
genar(instr);
|
||||
gencr(instr);
|
||||
emit(uint16_t(0x8141)); //cmp regb, imm32
|
||||
emitByte(0xf8 + (instr.regb % RegistersCount));
|
||||
emit(instr.imm32);
|
||||
emitByte(jumpCondition(instr));
|
||||
if ((instr.locc & 7) <= 3) {
|
||||
emitByte(0x16);
|
||||
}
|
||||
else {
|
||||
emitByte(0x05);
|
||||
}
|
||||
gencr(instr);
|
||||
emit(uint16_t(0x06eb)); //jmp to next
|
||||
emitByte(0x50); //push rax
|
||||
emitByte(jumpCondition(instr, true));
|
||||
emitByte(0x05);
|
||||
emitByte(0xe8); //call
|
||||
i = wrapInstr(i + (instr.imm8 & 127) + 2);
|
||||
if (i < instructionOffsets.size()) {
|
||||
|
@ -654,13 +647,8 @@ namespace RandomX {
|
|||
crlen = 17;
|
||||
}
|
||||
emit(0x74e73b48); //cmp rsp, rdi; je
|
||||
emitByte(11 + crlen);
|
||||
emitByte(0x48);
|
||||
emit(0x08244433); //xor rax,QWORD PTR [rsp+0x8]
|
||||
gencr(instr);
|
||||
emitByte(0xc2); //ret 8
|
||||
emit(uint16_t(0x0008));
|
||||
gencr(instr);
|
||||
emitByte(0x01);
|
||||
emitByte(0xc3); //ret
|
||||
}
|
||||
|
||||
#include "instructionWeights.hpp"
|
||||
|
|
515
src/program.inc
515
src/program.inc
|
@ -10,16 +10,13 @@ rx_body_0:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r11d, 445530481
|
||||
jbe short taken_call_0
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 01a8e4171h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_1
|
||||
taken_call_0:
|
||||
push rax
|
||||
cmp r11d, 445530481
|
||||
ja short rx_i_1
|
||||
call rx_i_30
|
||||
|
||||
rx_i_1: ;IMULH_64
|
||||
|
@ -283,21 +280,14 @@ rx_i_15: ;RET
|
|||
rx_body_15:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0468b38b8h
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_15
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0468b38b8h
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_15:
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0468b38b8h
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_16
|
||||
ret
|
||||
|
||||
rx_i_16: ;ADD_64
|
||||
dec ebx
|
||||
|
@ -620,12 +610,9 @@ rx_body_34:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r14d, -380224718
|
||||
js short taken_call_34
|
||||
mov r15, rax
|
||||
jmp rx_i_35
|
||||
taken_call_34:
|
||||
push rax
|
||||
cmp r14d, -380224718
|
||||
jns short rx_i_35
|
||||
call rx_i_108
|
||||
|
||||
rx_i_35: ;CALL
|
||||
|
@ -639,12 +626,9 @@ rx_i_35: ;CALL
|
|||
rx_body_35:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r9d, -2040787098
|
||||
js short taken_call_35
|
||||
mov r8, rax
|
||||
jmp rx_i_36
|
||||
taken_call_35:
|
||||
push rax
|
||||
cmp r9d, -2040787098
|
||||
jns short rx_i_36
|
||||
call rx_i_58
|
||||
|
||||
rx_i_36: ;FPMUL
|
||||
|
@ -722,16 +706,13 @@ rx_i_40: ;CALL
|
|||
rx_body_40:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r12d, -1297973554
|
||||
js short taken_call_40
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 0b2a27eceh
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_41
|
||||
taken_call_40:
|
||||
push rax
|
||||
cmp r12d, -1297973554
|
||||
jns short rx_i_41
|
||||
call rx_i_90
|
||||
|
||||
rx_i_41: ;JUMP
|
||||
|
@ -943,13 +924,10 @@ rx_i_53: ;RET
|
|||
rx_body_53:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r13, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_53
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r13, rax
|
||||
ret 8
|
||||
not_taken_ret_53:
|
||||
mov r13, rax
|
||||
je short rx_i_54
|
||||
ret
|
||||
|
||||
rx_i_54: ;IMUL_32
|
||||
dec ebx
|
||||
|
@ -1071,16 +1049,13 @@ rx_i_60: ;CALL
|
|||
rx_body_60:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r11d, 2075529029
|
||||
jno short taken_call_60
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 07bb60f45h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_61
|
||||
taken_call_60:
|
||||
push rax
|
||||
cmp r11d, 2075529029
|
||||
jo short rx_i_61
|
||||
call rx_i_116
|
||||
|
||||
rx_i_61: ;JUMP
|
||||
|
@ -1327,12 +1302,9 @@ rx_i_75: ;CALL
|
|||
rx_body_75:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r11d, -1160798683
|
||||
jo short taken_call_75
|
||||
mov r13, rax
|
||||
jmp rx_i_76
|
||||
taken_call_75:
|
||||
push rax
|
||||
cmp r11d, -1160798683
|
||||
jno short rx_i_76
|
||||
call rx_i_202
|
||||
|
||||
rx_i_76: ;FPADD
|
||||
|
@ -1364,21 +1336,14 @@ rx_i_77: ;RET
|
|||
rx_body_77:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 03a92bc7ah
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_77
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 03a92bc7ah
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_77:
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 03a92bc7ah
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_78
|
||||
ret
|
||||
|
||||
rx_i_78: ;MULH_64
|
||||
dec ebx
|
||||
|
@ -1407,16 +1372,13 @@ rx_i_79: ;CALL
|
|||
rx_body_79:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r13d, 1800043331
|
||||
jbe short taken_call_79
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 06b4a7b43h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_80
|
||||
taken_call_79:
|
||||
push rax
|
||||
cmp r13d, 1800043331
|
||||
ja short rx_i_80
|
||||
call rx_i_93
|
||||
|
||||
rx_i_80: ;ROR_64
|
||||
|
@ -1664,12 +1626,9 @@ rx_body_94:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r13d, -343122976
|
||||
js short taken_call_94
|
||||
mov r8, rax
|
||||
jmp rx_i_95
|
||||
taken_call_94:
|
||||
push rax
|
||||
cmp r13d, -343122976
|
||||
jns short rx_i_95
|
||||
call rx_i_157
|
||||
|
||||
rx_i_95: ;MUL_64
|
||||
|
@ -1978,16 +1937,13 @@ rx_i_111: ;CALL
|
|||
rx_body_111:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r14d, 1562606859
|
||||
jge short taken_call_111
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 05d237d0bh
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_112
|
||||
taken_call_111:
|
||||
push rax
|
||||
cmp r14d, 1562606859
|
||||
jl short rx_i_112
|
||||
call rx_i_212
|
||||
|
||||
rx_i_112: ;SUB_64
|
||||
|
@ -2174,16 +2130,13 @@ rx_i_122: ;CALL
|
|||
rx_body_122:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r11d, 2029448233
|
||||
jo short taken_call_122
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 078f6ec29h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_123
|
||||
taken_call_122:
|
||||
push rax
|
||||
cmp r11d, 2029448233
|
||||
jno short rx_i_123
|
||||
call rx_i_192
|
||||
|
||||
rx_i_123: ;ADD_64
|
||||
|
@ -2330,21 +2283,14 @@ rx_i_131: ;RET
|
|||
rx_body_131:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r15d
|
||||
xor eax, 0dff06f75h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_131
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r15d
|
||||
xor eax, 0dff06f75h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_131:
|
||||
mov rcx, rax
|
||||
mov eax, r15d
|
||||
xor eax, 0dff06f75h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_132
|
||||
ret
|
||||
|
||||
rx_i_132: ;FPADD
|
||||
dec ebx
|
||||
|
@ -2457,13 +2403,10 @@ rx_i_138: ;RET
|
|||
rx_body_138:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r10, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_138
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r10, rax
|
||||
ret 8
|
||||
not_taken_ret_138:
|
||||
mov r10, rax
|
||||
je short rx_i_139
|
||||
ret
|
||||
|
||||
rx_i_139: ;ADD_64
|
||||
dec ebx
|
||||
|
@ -2828,16 +2771,13 @@ rx_i_159: ;CALL
|
|||
rx_body_159:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r15d, -8571241
|
||||
jbe short taken_call_159
|
||||
mov rcx, rax
|
||||
mov eax, r13d
|
||||
xor eax, 0ff7d3697h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_160
|
||||
taken_call_159:
|
||||
push rax
|
||||
cmp r15d, -8571241
|
||||
ja short rx_i_160
|
||||
call rx_i_181
|
||||
|
||||
rx_i_160: ;ADD_32
|
||||
|
@ -2953,21 +2893,14 @@ rx_i_165: ;RET
|
|||
rx_body_165:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 06450685ch
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_165
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 06450685ch
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_165:
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 06450685ch
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_166
|
||||
ret
|
||||
|
||||
rx_i_166: ;SHR_64
|
||||
dec ebx
|
||||
|
@ -3037,16 +2970,13 @@ rx_i_169: ;CALL
|
|||
rx_body_169:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r10d, -1286357107
|
||||
jbe short taken_call_169
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0b353bf8dh
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_170
|
||||
taken_call_169:
|
||||
push rax
|
||||
cmp r10d, -1286357107
|
||||
ja short rx_i_170
|
||||
call rx_i_197
|
||||
|
||||
rx_i_170: ;FPSQRT
|
||||
|
@ -3194,21 +3124,14 @@ rx_i_178: ;RET
|
|||
rx_body_178:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 0c366b275h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_178
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 0c366b275h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_178:
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 0c366b275h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_179
|
||||
ret
|
||||
|
||||
rx_i_179: ;FPADD
|
||||
dec ebx
|
||||
|
@ -3254,12 +3177,9 @@ rx_body_181:
|
|||
xor rbp, rcx
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r12d, -1612576918
|
||||
ja short taken_call_181
|
||||
mov r10, rax
|
||||
jmp rx_i_182
|
||||
taken_call_181:
|
||||
push rax
|
||||
cmp r12d, -1612576918
|
||||
jbe short rx_i_182
|
||||
call rx_i_211
|
||||
|
||||
rx_i_182: ;FPSUB
|
||||
|
@ -3404,13 +3324,10 @@ rx_i_190: ;RET
|
|||
rx_body_190:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r13, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_190
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r13, rax
|
||||
ret 8
|
||||
not_taken_ret_190:
|
||||
mov r13, rax
|
||||
je short rx_i_191
|
||||
ret
|
||||
|
||||
rx_i_191: ;FPSQRT
|
||||
dec ebx
|
||||
|
@ -4147,21 +4064,14 @@ rx_body_231:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 0e6c9edaah
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_231
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 0e6c9edaah
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_231:
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 0e6c9edaah
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_232
|
||||
ret
|
||||
|
||||
rx_i_232: ;FPMUL
|
||||
dec ebx
|
||||
|
@ -4546,16 +4456,13 @@ rx_i_253: ;CALL
|
|||
rx_body_253:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r15d, 1699431947
|
||||
jns short taken_call_253
|
||||
mov rcx, rax
|
||||
mov eax, r13d
|
||||
xor eax, 0654b460bh
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_254
|
||||
taken_call_253:
|
||||
push rax
|
||||
cmp r15d, 1699431947
|
||||
js short rx_i_254
|
||||
call rx_i_367
|
||||
|
||||
rx_i_254: ;FPADD
|
||||
|
@ -4787,12 +4694,9 @@ rx_i_266: ;CALL
|
|||
rx_body_266:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r12d, 136160027
|
||||
ja short taken_call_266
|
||||
mov r10, rax
|
||||
jmp rx_i_267
|
||||
taken_call_266:
|
||||
push rax
|
||||
cmp r12d, 136160027
|
||||
jbe short rx_i_267
|
||||
call rx_i_295
|
||||
|
||||
rx_i_267: ;ROL_64
|
||||
|
@ -5247,21 +5151,14 @@ rx_i_291: ;RET
|
|||
rx_body_291:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0768a9d75h
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_291
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0768a9d75h
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_291:
|
||||
mov rcx, rax
|
||||
mov eax, r14d
|
||||
xor eax, 0768a9d75h
|
||||
and eax, 32767
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_292
|
||||
ret
|
||||
|
||||
rx_i_292: ;ROL_64
|
||||
dec ebx
|
||||
|
@ -5302,21 +5199,14 @@ rx_i_294: ;RET
|
|||
rx_body_294:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 0ef8571b7h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_294
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 0ef8571b7h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_294:
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 0ef8571b7h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_295
|
||||
ret
|
||||
|
||||
rx_i_295: ;FPSUB
|
||||
dec ebx
|
||||
|
@ -5672,21 +5562,14 @@ rx_body_316:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 03602c513h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_316
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 03602c513h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_316:
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 03602c513h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_317
|
||||
ret
|
||||
|
||||
rx_i_317: ;FPADD
|
||||
dec ebx
|
||||
|
@ -5788,16 +5671,13 @@ rx_i_322: ;CALL
|
|||
rx_body_322:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r11d, 1411981860
|
||||
jo short taken_call_322
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 054292224h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_323
|
||||
taken_call_322:
|
||||
push rax
|
||||
cmp r11d, 1411981860
|
||||
jno short rx_i_323
|
||||
call rx_i_343
|
||||
|
||||
rx_i_323: ;MUL_64
|
||||
|
@ -5916,13 +5796,10 @@ rx_i_329: ;RET
|
|||
rx_body_329:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r11, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_329
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r11, rax
|
||||
ret 8
|
||||
not_taken_ret_329:
|
||||
mov r11, rax
|
||||
je short rx_i_330
|
||||
ret
|
||||
|
||||
rx_i_330: ;MUL_32
|
||||
dec ebx
|
||||
|
@ -6268,16 +6145,13 @@ rx_i_350: ;CALL
|
|||
rx_body_350:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r9d, -980411581
|
||||
jbe short taken_call_350
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 0c5901b43h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_351
|
||||
taken_call_350:
|
||||
push rax
|
||||
cmp r9d, -980411581
|
||||
ja short rx_i_351
|
||||
call rx_i_352
|
||||
|
||||
rx_i_351: ;MUL_64
|
||||
|
@ -6909,21 +6783,14 @@ rx_i_388: ;RET
|
|||
rx_body_388:
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 0a0985cc2h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_388
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 0a0985cc2h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_388:
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 0a0985cc2h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_389
|
||||
ret
|
||||
|
||||
rx_i_389: ;JUMP
|
||||
dec ebx
|
||||
|
@ -7155,13 +7022,10 @@ rx_i_402: ;RET
|
|||
rx_body_402:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r14, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_402
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r14, rax
|
||||
ret 8
|
||||
not_taken_ret_402:
|
||||
mov r14, rax
|
||||
je short rx_i_403
|
||||
ret
|
||||
|
||||
rx_i_403: ;IMUL_32
|
||||
dec ebx
|
||||
|
@ -7210,16 +7074,13 @@ rx_i_405: ;CALL
|
|||
rx_body_405:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r10d, 1795880641
|
||||
jbe short taken_call_405
|
||||
mov rcx, rax
|
||||
mov eax, r12d
|
||||
xor eax, 06b0af6c1h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
jmp rx_i_406
|
||||
taken_call_405:
|
||||
push rax
|
||||
cmp r10d, 1795880641
|
||||
ja short rx_i_406
|
||||
call rx_i_494
|
||||
|
||||
rx_i_406: ;FPDIV
|
||||
|
@ -7302,13 +7163,10 @@ rx_i_410: ;RET
|
|||
rx_body_410:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r8, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_410
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r8, rax
|
||||
ret 8
|
||||
not_taken_ret_410:
|
||||
mov r8, rax
|
||||
je short rx_i_411
|
||||
ret
|
||||
|
||||
rx_i_411: ;RET
|
||||
dec ebx
|
||||
|
@ -7321,13 +7179,10 @@ rx_i_411: ;RET
|
|||
rx_body_411:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r12, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_411
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r12, rax
|
||||
ret 8
|
||||
not_taken_ret_411:
|
||||
mov r12, rax
|
||||
je short rx_i_412
|
||||
ret
|
||||
|
||||
rx_i_412: ;FPDIV
|
||||
dec ebx
|
||||
|
@ -7495,12 +7350,9 @@ rx_body_421:
|
|||
xor rbp, rcx
|
||||
and ecx, 32767
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r8d, -1600409762
|
||||
jno short taken_call_421
|
||||
mov r10, rax
|
||||
jmp rx_i_422
|
||||
taken_call_421:
|
||||
push rax
|
||||
cmp r8d, -1600409762
|
||||
jo short rx_i_422
|
||||
call rx_i_31
|
||||
|
||||
rx_i_422: ;MUL_32
|
||||
|
@ -7624,21 +7476,14 @@ rx_i_428: ;RET
|
|||
rx_body_428:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 0e3b86b2fh
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_428
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 0e3b86b2fh
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_428:
|
||||
mov rcx, rax
|
||||
mov eax, r8d
|
||||
xor eax, 0e3b86b2fh
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_429
|
||||
ret
|
||||
|
||||
rx_i_429: ;MUL_64
|
||||
dec ebx
|
||||
|
@ -7843,12 +7688,9 @@ rx_body_440:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
cmp r12d, 2127765370
|
||||
js short taken_call_440
|
||||
mov r9, rax
|
||||
jmp rx_i_441
|
||||
taken_call_440:
|
||||
push rax
|
||||
cmp r12d, 2127765370
|
||||
jns short rx_i_441
|
||||
call rx_i_41
|
||||
|
||||
rx_i_441: ;ADD_64
|
||||
|
@ -7895,21 +7737,14 @@ rx_i_443: ;RET
|
|||
rx_body_443:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 04f71c419h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_443
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 04f71c419h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_443:
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 04f71c419h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_444
|
||||
ret
|
||||
|
||||
rx_i_444: ;FPSUB
|
||||
dec ebx
|
||||
|
@ -8060,21 +7895,14 @@ rx_i_452: ;RET
|
|||
rx_body_452:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 0e27dea25h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_452
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 0e27dea25h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_452:
|
||||
mov rcx, rax
|
||||
mov eax, r11d
|
||||
xor eax, 0e27dea25h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_453
|
||||
ret
|
||||
|
||||
rx_i_453: ;IMUL_32
|
||||
dec ebx
|
||||
|
@ -8910,21 +8738,14 @@ rx_body_502:
|
|||
xor rbp, rcx
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 08d85312h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_502
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 08d85312h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
ret 8
|
||||
not_taken_ret_502:
|
||||
mov rcx, rax
|
||||
mov eax, r9d
|
||||
xor eax, 08d85312h
|
||||
and eax, 2047
|
||||
mov qword ptr [rsi + rax * 8], rcx
|
||||
je short rx_i_503
|
||||
ret
|
||||
|
||||
rx_i_503: ;FPSUB
|
||||
dec ebx
|
||||
|
@ -9005,13 +8826,10 @@ rx_i_507: ;RET
|
|||
rx_body_507:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r14, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_507
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r14, rax
|
||||
ret 8
|
||||
not_taken_ret_507:
|
||||
mov r14, rax
|
||||
je short rx_i_508
|
||||
ret
|
||||
|
||||
rx_i_508: ;RET
|
||||
dec ebx
|
||||
|
@ -9024,13 +8842,10 @@ rx_i_508: ;RET
|
|||
rx_body_508:
|
||||
and ecx, 2047
|
||||
mov rax, qword ptr [rsi+rcx*8]
|
||||
mov r8, rax
|
||||
cmp rsp, rdi
|
||||
je short not_taken_ret_508
|
||||
xor rax, qword ptr [rsp + 8]
|
||||
mov r8, rax
|
||||
ret 8
|
||||
not_taken_ret_508:
|
||||
mov r8, rax
|
||||
je short rx_i_509
|
||||
ret
|
||||
|
||||
rx_i_509: ;FPROUND
|
||||
dec ebx
|
||||
|
|
Loading…
Reference in a new issue