https://bugs.kde.org/show_bug.cgi?id=381085

Julian Seward <jsew...@acm.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jsew...@acm.org

--- Comment #1 from Julian Seward <jsew...@acm.org> ---
(In reply to IsaacOscar from comment #0)
>             "LDR X0, [X29, X0, SXTX #3]");

Did you write that instruction by hand (in the original situation where it
crashed, not in this test case) ?  I ask because I have never seen gcc nor
LLVM/Clang generate a memory address like that.

In VEX/priv/guest_arm64_toIR.c, function gen_indexed_EA, find this

      case BITS4(1,1,1,1): goto fail; //ATC
      case BITS4(0,1,1,1):
         rhs = binop(Iop_Shl64, getIReg64orZR(mm), mkU8(szLg2));
         vex_sprintf(buf, "[%s, %s lsl %u]",
                     nameIReg64orZR(nn), nameIReg64orZR(mm), szLg2);
         break;

and remove the "goto fail;" on the first line, allowing it to fall through
to the 0111 case.  Does that help?  Does it provide the correct behaviour
for you for both positive and negative values of X0 ?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to