2
0
Эх сурвалжийг харах

* bugfix of emissions of jmp instructions

carl 22 жил өмнө
parent
commit
236a807071
1 өөрчлөгдсөн 57 нэмэгдсэн , 54 устгасан
  1. 57 54
      compiler/m68k/agcpugas.pas

+ 57 - 54
compiler/m68k/agcpugas.pas

@@ -41,58 +41,58 @@ interface
 
     const
       gas_op2str:op2strtable=
-       { 68000 only instructions }
-       ('abcd','add', 'adda','addi','addq','addx','and','andi',
-       'asl','asr','bcc','bcs','beq','bge','bgt','bhi',
-       'ble','bls','blt','bmi','bne','bpl','bvc','bvs',
-       'bchg','bclr','bra','bset','bsr','btst','chk',
-       'clr','cmp','cmpa','cmpi','cmpm','dbcc','dbcs','dbeq','dbge',
-       'dbgt','dbhi','dble','dbls','dblt','dbmi','dbne','dbra',
-       'dbpl','dbt','dbvc','dbvs','dbf','divs','divu',
-       'eor','eori','exg','illegal','ext','jmp','jsr',
-       'lea','link','lsl','lsr','move','movea','movei','moveq',
-       'movem','movep','muls','mulu','nbcd','neg','negx',
-       'nop','not','or','ori','pea','rol','ror','roxl',
-       'roxr','rtr','rts','sbcd','scc','scs','seq','sge',
-       'sgt','shi','sle','sls','slt','smi','sne',
-       'spl','st','svc','svs','sf','sub','suba','subi','subq',
-       'subx','swap','tas','trap','trapv','tst','unlk',
-       'rte','reset','stop',
-       { MC68010 instructions }
-       'bkpt','movec','moves','rtd',
-       { MC68020 instructions }
-       'bfchg','bfclr','bfexts','bfextu','bfffo',
-       'bfins','bfset','bftst','callm','cas','cas2',
-       'chk2','cmp2','divsl','divul','extb','pack','rtm',
-       'trapcc','tracs','trapeq','trapf','trapge','trapgt',
-       'traphi','traple','trapls','traplt','trapmi','trapne',
-       'trappl','trapt','trapvc','trapvs','unpk',
-       { FPU Processor instructions - directly supported only. }
-       { IEEE aware and misc. condition codes not supported   }
-       'fabs','fadd',
-       'fbeq','fbne','fbngt','fbgt','fbge','fbnge',
-       'fblt','fbnlt','fble','fbgl','fbngl','fbgle','fbngle',
-       'fdbeq','fdbne','fdbgt','fdbngt','fdbge','fdnbge',
-       'fdblt','fdbnlt','fdble','fdbgl','fdbngl','fdbgle','fdbngle',
-       'fseq','fsne','fsgt','fsngt','fsge','fsnge',
-       'fslt','fsnlt','fsle','fsgl','fsngl','fsgle','fsngle',
-       'fcmp','fdiv','fmove','fmovem',
-       'fmul','fneg','fnop','fsqrt','fsub','fsgldiv',
-       'fsflmul','ftst',
-       'fint','fintrz',
-       'ftrapeq','ftrapne','ftrapgt','ftrapngt','ftrapge','ftrapnge',
-       'ftraplt','ftrapnlt','ftraple','ftrapgl','ftrapngl','ftrapgle',
-       'ftrapngle',
-       { Useful for assembly langage output }
-       { Protected instructions }
-       'cprestore','cpsave',
-       { FPU Unit protected instructions                    }
-       { and 68030/68851 common MMU instructions            }
-       { (this may include 68040 MMU instructions)          }
-       'frestore','fsave','pflush','pflusha','pload','pmove','ptest',
-       { Useful for assembly langage output }
-       '','','','');
-
+    {  warning: CPU32 opcodes are not fully compatible with the MC68020. }
+       { 68000 only opcodes }
+       ('abcd',
+         'add','adda','addi','addq','addx','and','andi',
+         'asl','asr','bcc','bcs','beq','bge','bgt','bhi',
+         'ble','bls','blt','bmi','bne','bpl','bvc','bvs',
+         'bchg','bclr','bra','bset','bsr','btst','chk',
+         'clr','cmp','cmpa','cmpi','cmpm','dbcc','dbcs','dbeq','dbge',
+         'dbgt','dbhi','dble','dbls','dblt','dbmi','dbne','dbra',
+         'dbpl','dbt','dbvc','dbvs','dbf','divs','divu',
+         'eor','eori','exg','illegal','ext','jmp','jsr',
+         'lea','link','lsl','lsr','move','movea','movei','moveq',
+         'movem','movep','muls','mulu','nbcd','neg','negx',
+         'nop','not','or','ori','pea','rol','ror','roxl',
+         'roxr','rtr','rts','sbcd','scc','scs','seq','sge',
+         'sgt','shi','sle','sls','slt','smi','sne',
+         'spl','st','svc','svs','sf','sub','suba','subi','subq',
+         'subx','swap','tas','trap','trapv','tst','unlk',
+         'rte','reset','stop',
+         { mc68010 instructions }
+         'bkpt','movec','moves','rtd',
+         { mc68020 instructions }
+         'bfchg','bfclr','bfexts','bfextu','bfffo',
+         'bfins','bfset','bftst','callm','cas','cas2',
+         'chk2','cmp2','divsl','divul','extb','pack','rtm',
+         'trapcc','tracs','trapeq','trapf','trapge','trapgt',
+         'traphi','traple','trapls','traplt','trapmi','trapne',
+         'trappl','trapt','trapvc','trapvs','unpk',
+         { fpu processor instructions - directly supported only. }
+         { ieee aware and misc. condition codes not supported   }
+         'fabs','fadd',
+         'fbeq','fbne','fbngt','fbgt','fbge','fbnge',
+         'fblt','fbnlt','fble','fbgl','fbngl','fbgle','fbngle',
+         'fdbeq','fdbne','fdbgt','fdbngt','fdbge','fdbnge',
+         'fdblt','fdbnlt','fdble','fdbgl','fdbngl','fdbgle','fdbngle',
+         'fseq','fsne','fsgt','fsngt','fsge','fsnge',
+         'fslt','fsnlt','fsle','fsgl','fsngl','fsgle','fsngle',
+         'fcmp','fdiv','fmove','fmovem',
+         'fmul','fneg','fnop','fsqrt','fsub','fsgldiv',
+         'fsflmul','ftst',
+         'ftrapeq','ftrapne','ftrapgt','ftrapngt','ftrapge','ftrapnge',
+         'ftraplt','ftrapnlt','ftraple','ftrapgl','ftrapngl','ftrapgle','ftrapngle',
+         { protected instructions }
+         'cprestore','cpsave',
+         { fpu unit protected instructions                    }
+         { and 68030/68851 common mmu instructions            }
+         { (this may include 68040 mmu instructions)          }
+         'frestore','fsave','pflush','pflusha','pload','pmove','ptest',
+         { useful for assembly language output }
+         'label','none','db','s','b','fb');
+
+    
      gas_opsize2str : array[topsize] of string[2] =
      ('','.b','.w','.l','.s','.d','.x',''
      );
@@ -193,7 +193,7 @@ interface
                       delete(hs,length(hs),1);
                       getopstr := hs;
                     end;
-             top_const : getopstr:='#'+tostr(o.val);
+             top_const : getopstr:='#'+tostr(longint(o.val));
             top_symbol :
                     { compare with i386, where a symbol is considered }
                     { a constant.                                     }
@@ -417,7 +417,10 @@ initialization
 end.
 {
   $Log$
-  Revision 1.5  2003-01-08 18:43:57  daniel
+  Revision 1.6  2003-02-15 22:19:40  carl
+   * bugfix of emissions of jmp instructions
+
+  Revision 1.5  2003/01/08 18:43:57  daniel
    * Tregister changed into a record
 
   Revision 1.4  2002/11/30 23:33:02  carl