Prechádzať zdrojové kódy

* don't write size suffix for popcnt on Darwin, its assembler doesn't
support it (fixes webtbs/tw13186)

git-svn-id: trunk@21412 -

Jonas Maebe 13 rokov pred
rodič
commit
5dc75a92a3
1 zmenil súbory, kde vykonal 6 pridanie a 0 odobranie
  1. 6 0
      compiler/x86/agx86att.pas

+ 6 - 0
compiler/x86/agx86att.pas

@@ -51,6 +51,8 @@ interface
         procedure WriteReference(var ref : treference);
         procedure WriteOper(const o:toper);
         procedure WriteOper_jmp(const o:toper);
+       protected
+        fskipPopcountSuffix: boolean;
        public
         procedure WriteInstruction(hp: tai);override;
      end;
@@ -86,6 +88,8 @@ interface
       begin
         inherited create(smart);
         InstrWriter := Tx86InstrWriter.create(self);
+        { Apple's assembler does not support a size suffix for popcount }
+        Tx86InstrWriter(InstrWriter).fskipPopcountSuffix := true;
       end;
 
 {****************************************************************************
@@ -287,6 +291,8 @@ interface
            (op<>A_FNSTCW) and
            (op<>A_FSTCW) and
            (op<>A_FLDCW) and
+           (not fskipPopcountSuffix or
+            (op<>A_POPCNT)) and
            not(
                (taicpu(hp).ops<>0) and
                (taicpu(hp).oper[0]^.typ=top_reg) and