If the return value doesn't fit in a single register rdx/edx can in some
cases be used in addition to rax/eax.
Doesn't affect any of the existing checkasm tests but it's more correct
behavior and it might be useful in the future.
jz .ok
mov r9, rax
+ mov r10, rdx
lea r0, [error_message]
call puts
mov r1, [rsp+max_args*8]
mov dword [r1], 0
+ mov rdx, r10
mov rax, r9
.ok:
RET
or r3, r5
jz .ok
mov r3, eax
+ mov r4, edx
lea r1, [error_message]
push r1
call puts
add esp, 4
mov r1, r1m
mov dword [r1], 0
+ mov edx, r4
mov eax, r3
.ok:
REP_RET