I've been working on something and run into another couple of problems. First off:
ROR64 macro a, rot
; Result := (A shl (64-rot)) xor (A shr rot);
MOV EAX, 64
SUB EAX, rot
PSLLQ a, EAX
MOVQ mm6, a
PSRLQ mm6, rot
PXOR a, mm6
endm
I've been attempting the process using QWords per the last question (I'll probably attempt it with DWords to learn, too). All I have access to on the dev machine I'm using is MMX instructions, so I've been going there. The problem has been handling the values that come from "rot", since I've determined the MMX ops only work on those registers via the errors I get from MASM32. But when I attempt to put "rot" and "64-rot" into a MMX register, I get more errors. How do I resolve this?
Also I will need to be adding MMX registers as QWords. I do not see an instruction in the references to do this. Will I need to be splitting those up into the regular registers anyway or pushing them through the FP instructions?