Hi,
i have got some troubles while trying to instrumentate a indirect call
instruction.
Basically, every time i run into a CALL64r i would like to have this
situation:
------
| .... |
| CMP |
| JE |
------
| |
--- -----
| |
---- ----
|EXIT| |CALL|
---- |....|
----
So i do a splice, fix up successors and predecessors, but since the call
implicitly uses some register the compilation fails with a lot of this:
*** Bad machine code: Using an undefined physical register ***
- function: parse_and_dump_tv_tag
- basic block: BB#126 (null) (0x6127658)
- instruction: CALL64r %vreg41, <regmask>, %RSP<imp-use>,
%EDI<imp-use>,
%RSI<imp-use>, %RDX<imp-use>, %RCX<imp-use>,
%R8<imp-use>, %R9D<imp-use>,
%AL<imp-use>, %RSP<imp-def>, %EAX<imp-def>; GR64:%vreg41
How can i get rid of this errors?
Thank you very much,
-- Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20150728/a1293bf3/attachment.html>
Alex already answered your question. Q.> On Jul 28, 2015, at 1:46 AM, Johnny Bory <johnny.bory.12 at gmail.com> wrote: > > Hi, > > i have got some troubles while trying to instrumentate a indirect call instruction. > Basically, every time i run into a CALL64r i would like to have this situation: > ------ > | .... | > | CMP | > | JE | > ------ > | | > --- ----- > | | > ---- ---- > |EXIT| |CALL| > ---- |....| > ---- > So i do a splice, fix up successors and predecessors, but since the call implicitly uses some register the compilation fails with a lot of this: > > *** Bad machine code: Using an undefined physical register *** > - function: parse_and_dump_tv_tag > - basic block: BB#126 (null) (0x6127658) > - instruction: CALL64r %vreg41, <regmask>, %RSP<imp-use>, %EDI<imp-use>, %RSI<imp-use>, %RDX<imp-use>, %RCX<imp-use>, %R8<imp-use>, %R9D<imp-use>, %AL<imp-use>, %RSP<imp-def>, %EAX<imp-def>; GR64:%vreg41 > > How can i get rid of this errors? > > Thank you very much, > > -- Jon > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150728/91f0608d/attachment.html>
Possibly Parallel Threads
- [LLVMdev] Splice and undefined physical reg
- [LLVMdev] RegisterCoalescing Pass seems to ignore part of CFG.
- [LLVMdev] RegisterCoalescing Pass seems to ignore part of CFG.
- [LLVMdev] RegisterCoalescing Pass seems to ignore part of CFG.
- [LLVMdev] RegisterCoalescing Pass seems to ignore part of CFG.