浏览代码

Encoding of preindexed LDRH/STRH opcodes was missing.

git-svn-id: branches/laksen/armiw@29254 -
Jeppe Johansen 10 年之前
父节点
当前提交
284a4d9dd7
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      compiler/arm/aasmcpu.pas

+ 3 - 0
compiler/arm/aasmcpu.pas

@@ -2762,6 +2762,9 @@ implementation
                   bytes:=bytes or (1 shl 23);
                   bytes:=bytes or (1 shl 23);
                   bytes:=bytes or getsupreg(oper[1]^.ref^.index);
                   bytes:=bytes or getsupreg(oper[1]^.ref^.index);
                 end;
                 end;
+              { set W bit }
+              if oper[1]^.ref^.addressmode=AM_PREINDEXED then
+                bytes:=bytes or (1 shl 21);
               { set P bit if necessary }
               { set P bit if necessary }
               if oper[1]^.ref^.addressmode<>AM_POSTINDEXED then
               if oper[1]^.ref^.addressmode<>AM_POSTINDEXED then
                 bytes:=bytes or (1 shl 24);
                 bytes:=bytes or (1 shl 24);