Ver Fonte

* patch by J. Gareth Moreton: aarch64 EXTDEBUG fixes and extensions, resolves #38383

git-svn-id: trunk@48337 -
florian há 4 anos atrás
pai
commit
2519fb1266
2 ficheiros alterados com 14 adições e 9 exclusões
  1. 11 9
      compiler/aarch64/aasmcpu.pas
  2. 3 0
      compiler/aarch64/cgcpu.pas

+ 11 - 9
compiler/aarch64/aasmcpu.pas

@@ -1018,6 +1018,7 @@ implementation
           A_TST,
           A_FCMP,A_FCMPE,
           A_CBZ,A_CBNZ,
+          A_PRFM,A_PRFUM,
           A_RET:
             result:=operand_read;
           A_STR,A_STUR:
@@ -1026,14 +1027,6 @@ implementation
             else
               { check for pre/post indexed in spilling_get_operation_type_ref }
               result:=operand_read;
-          A_STLXP,
-          A_STLXR,
-          A_STXP,
-          A_STXR:
-            if opnr=0 then
-              result:=operand_write
-            else
-              result:=operand_read;
           A_STP:
             begin
               if opnr in [0,1] then
@@ -1102,12 +1095,21 @@ implementation
            A_FCVTZS,
            A_SDIV,
            A_SMULL,
+           A_STLXP,
+           A_STLXR,
+           A_STXP,
+           A_STXR,
            A_SUB,
+           A_SXTB,
+           A_SXTH,
+           A_SXTW,
            A_UBFIZ,
            A_UBFX,
            A_UCVTF,
            A_UDIV,
-           A_UMULL:
+           A_UMULL,
+           A_UXTB,
+           A_UXTH:
              if opnr=0 then
                result:=operand_write
              else

+ 3 - 0
compiler/aarch64/cgcpu.pas

@@ -587,6 +587,9 @@ implementation
         manipulated_a: tcgint;
         leftover_a: word;
       begin
+{$ifdef extdebug}
+        list.concat(tai_comment.Create(strpnew('Generating constant ' + tostr(a))));
+{$endif extdebug}
         case a of
           { Small positive number }
           $0..$FFFF: