The BaseIndex and ImplicitAddress are contain 32bit wide offset, but the load16 functions were working with 8 bit data (encoded in the instruction). If the offset cannot be encoded in an instruction, it should be stored in a temporary register.
Created attachment 55363 [details] Fix halfword loads on ARM
Comment on attachment 55363 [details] Fix halfword loads on ARM Clearing flags on attachment: 55363 Committed r59038: <http://trac.webkit.org/changeset/59038>
All reviewed patches have been landed. Closing bug.
Laszlo, this patch doesn't apply at all in the branch. There's no load16() function in MacroAssembler ARM. Is the branch affected by this issue at all? (Removing from the blocker list until we have something to cherry-pick :)
This patch fixed both load16 functions. The load16(ImplicitAddress) is a newer function. I guess this one is missing from the Qt branch. You can add the load16(ImplicitAddress) function as well or inline its body into the load16(BaseIndex) function.