ソースを参照

+ tarminnode.pass_1 to set expectloc correctly

git-svn-id: trunk@22074 -
florian 13 年 前
コミット
ecb037ad79
1 ファイル変更17 行追加0 行削除
  1. 17 0
      compiler/arm/narmset.pas

+ 17 - 0
compiler/arm/narmset.pas

@@ -36,6 +36,7 @@ interface
        { tarminnode }
 
        tarminnode = class(tcginnode)
+         function pass_1: tnode; override;
          procedure in_smallset(uopsize: tcgsize; opdef: tdef; setbase: aint); override;
        end;
 
@@ -64,6 +65,22 @@ implementation
                             TARMINNODE
 *****************************************************************************}
 
+    function tarminnode.pass_1: tnode;
+      var
+        setparts: Tsetparts;
+        numparts: byte;
+        use_small: boolean;
+      begin
+        result:=inherited pass_1;
+
+        if not(assigned(result)) then
+          begin
+            if not(checkgenjumps(setparts,numparts,use_small)) and
+              use_small then
+              expectloc:=LOC_FLAGS;
+          end;
+      end;
+
     procedure tarminnode.in_smallset(uopsize: tcgsize; opdef: tdef; setbase: aint);
       var
         so : tshifterop;