Displaying 2 results from an estimated 2 matches for "_z5test2v".
2014 Feb 08
2
[LLVMdev] selecting ISD node - help
...de(X86::RDMSR, dl,
MVT::Glue, setIdNode.getValue(1)), 0);
SDValue resultNode = CurDAG->getCopyFromReg(CurDAG->getEntryNode(), dl,
X86::EAX, MVT::i32, rdmsrNode);
return resultNode.getNode();
but I've a couple of problems:
getCopyToReg doesn't show on the final assembly
__Z5test2v proc near
push ebp
mov ebp, esp
rdmsr
pop ebp
retn
__Z5test2v endp
When I add rdmsr + rdmsr, first the rdmsr calls are made and only then he
adds eax, eax.
__Z5test3v proc near
push ebp
mov ebp, esp
rdmsr
rdmsr
add eax, eax
pop ebp...
2014 Feb 08
2
[LLVMdev] selecting ISD node - help
Hey, I wanted to add an intrinsics to read MSRs.
So I added the intrinsics and lowered it to a new ISD node I created
ISD::RDMSR, its first operand is the MSR id.
I added a case in X86DAGToDAGISel::Select for ISD::RDMSR.
Now I know rdmsr works like so:
mov r/ecx, <id>
rdmsr
r/eax holds the lower 32/64 bit
>From what I understood this needs a Token Factor node, nodes which are