You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While trying to get attach #38 working on AArch32 I was using "cat" as a
test target for attaching and it contains a predicated return "bx.cc %lr"
which DR correctly mangles, but then failes to encode. We must have some
tests of this: I wonder if there's something slightly different here, or
this is a regression, or what.
interp: start_pc = 0xb6e83056
check_thread_vm_area: pc = 0xb6e83056
prepend_entry_to_fraglist: putting fragment @0xb6e83056 (shared) on vmarea 0xb6dfb000-0xb6ed1000
check_thread_vm_area: check_stop = 0xb6ed1000
0xb6e83056 bc80 ldm (%sp)[4byte] %sp -> %r7 %sp
0xb6e83058 f510 5f80 cmn %r0 $0x00001000
0xb6e8305c bf38 it $0x03 $0x08
0xb6e8305e 4770 bx.cc %lr
reads flag before writing it!
mbr exit target = 0x46895180
end_pc = 0xb6e83060
exit_branch_type=0x6 bb->exit_target=0x46895180
bb ilist after mangling:
TAG 0xb6e83056
+0 L3 @0x468dc96c bc80 ldm (%sp)[4byte] %sp -> %r7 %sp
+2 L3 @0x468dc928 f510 5f80 cmn %r0 $0x00001000
+6 m4 @0x468dc9d4 f8ca 2008 str %r2 -> +0x08(%r10)[4byte]
+10 m4 @0x468dcaac <label note=0x00000000>
+10 L4 @0x468dca24 bf32 itee $0x00000003 $0x00000002
+12 m4 @0x468dcaf0 4672 mov.cc %lr -> %r2
+14 m4 @0x468dcb34 f243 0261 movw.cs $0x00003061 -> %r2
+18 m4 @0x468dcb84 f2cb 62e8 movt.cs $0x0000b6e8 -> %r2
+22 L4 @0x468dca68 f7bb ba92 b $0x46895180 <shared_bb_ibl_ret>
END 0xb6e83056
emit_fragment: bb use ibl <0x46895180>
fcache_add_fragment to Basic block (shared) cache (size 4KB): F2 w/ size 46 (=> 52)
find_free_list_slot: 52 bytes
added F2 to unfilled unit @0x4689b024 (4012 [/57344] bytes left now)
SYSLOG_ERROR: No predicate is supported
ERROR: Could not find encoding for: movw.cs $0x00003061 -> %r2
Reason: No predicate is supported
Ah it turns out this was caused by a local fix in my attach tree that fixed an encoder error on arm where it tries to get the opcode before outputting a pure-binary instr.
While trying to get attach #38 working on AArch32 I was using "cat" as a
test target for attaching and it contains a predicated return "bx.cc %lr"
which DR correctly mangles, but then failes to encode. We must have some
tests of this: I wonder if there's something slightly different here, or
this is a regression, or what.
In gdb:
Looks right:
Looks like a bug in encode_in_it_block() incorrectly returning false here.
It's not from the -loglevel 4: w/o logging we have:
It's there w/o attach too:
Unfortunately this also shows up at the end of the infloop test, so it blocks the test for #38.
The text was updated successfully, but these errors were encountered: