home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / tos / updates / update25.zoo / gas / diffs
Encoding:
Text File  |  1992-10-09  |  33.6 KB  |  1,200 lines

  1. *** 1.2    1992/04/02 22:56:29
  2. --- Makefile    1992/10/09 21:39:14
  3. ***************
  4. *** 1,9 ****
  5. - # HISTORY
  6. - # 31-Jul-91  Shin Iwamoto (shin) at CANON Inc.
  7. - #    Added difinitions for STONE.
  8. - # old day    Shin Iwamoto (shin) at CANON Inc.
  9. - #    Added -DCANON.
  10.   # Makefile for GAS.
  11.   # Copyright (C) 1989, Free Software Foundation
  12.   # 
  13. --- 1,3 ----
  14. ***************
  15. *** 27,43 ****
  16.   # SPARC, ns32k, or i860 assembler(s).
  17.   
  18.   BINDIR = /usr/local/bin
  19. ! CC=gcc
  20.   
  21.   # If you are on a BSD system, un-comment the next two lines, and comment out
  22.   # the lines for SystemV and HPUX below
  23. ! #G0 = -g  -I. #-O -Wall
  24. ! #LDFLAGS = $(CFLAGS)
  25. ! #
  26. ! # To compile gas for STONE, link m-stone.h to m68k.h, and un-comment the
  27. ! # next two lines.
  28. ! G0 = -g  -I. -Dm68040 -DCANON #-O -Wall
  29. ! LDFLAGS = 
  30.   #
  31.   # To compile gas on a System Five machine, comment out the two lines above
  32.   # and un-comment out the next three lines
  33. --- 21,32 ----
  34.   # SPARC, ns32k, or i860 assembler(s).
  35.   
  36.   BINDIR = /usr/local/bin
  37. ! #CC=gcc
  38.   
  39.   # If you are on a BSD system, un-comment the next two lines, and comment out
  40.   # the lines for SystemV and HPUX below
  41. ! G0 = -g  -I. #-O -Wall
  42. ! LDFLAGS = $(CFLAGS)
  43.   #
  44.   # To compile gas on a System Five machine, comment out the two lines above
  45.   # and un-comment out the next three lines
  46. ***************
  47. *** 133,139 ****
  48.   
  49.   G1 = # -DUSE_SYSTEM_HDR
  50.   G2 = # -DUSE_HP_HDR
  51. ! G3 =  -DSUN_ASM_SYNTAX
  52.   
  53.   OPTIONS = $(O1) $(O2) $(O3) $(O4) $(O5) $(O6) $(O7) $(O8) $(O9) $(O10)
  54.   
  55. --- 122,128 ----
  56.   
  57.   G1 = # -DUSE_SYSTEM_HDR
  58.   G2 = # -DUSE_HP_HDR
  59. ! G3 = # -DSUN_ASM_SYNTAX
  60.   
  61.   OPTIONS = $(O1) $(O2) $(O3) $(O4) $(O5) $(O6) $(O7) $(O8) $(O9) $(O10)
  62.   
  63. *** 1.2    1992/06/03 18:48:09
  64. --- PatchLev.h    1992/10/09 21:39:56
  65. ***************
  66. *** 1,4 ****
  67. ! #define PatchLevel "3"
  68.   
  69.   /*
  70.    *    the Patch Level above is to identify the version
  71. --- 1,4 ----
  72. ! #define PatchLevel "4"
  73.   
  74.   /*
  75.    *    the Patch Level above is to identify the version
  76. *** 1.3    1992/04/02 22:56:29
  77. --- app.c    1992/10/09 21:39:16
  78. ***************
  79. *** 257,268 ****
  80.               (*unget)(ch);
  81.               goto flushchar;
  82.           }
  83. - #ifdef CANON
  84. -         if(ch==':') {
  85. -             (*unget)(ch);
  86. -             goto flushchar;
  87. -         }
  88. - #endif CANON
  89.           (*unget)(ch);
  90.           if(state==0 || state==2) {
  91.               state++;
  92. --- 257,262 ----
  93. *** 1.1    1992/04/02 22:56:29
  94. --- m-stone.h    1992/10/09 21:39:22
  95. ***************
  96. *** 1,34 ****
  97. - /*
  98. -  * m-stone.h -- 68040 version of the assembler for th stone.
  99. -  *
  100. -  */
  101. - /*
  102. -  * HISTORY
  103. -  * 31-Jul-91  Shin Iwamoto (shin) at CANON Inc.
  104. -  *    Copied from m-sun3.h.
  105. -  *    Moved SUN_ASM_SYNTAX to Makefile.
  106. -  */
  107. - /* m-sun3.h -- 68020 version of the assembler for the Sun-3
  108. -    Copyright (C) 1987 Free Software Foundation, Inc.
  109. - This file is part of GAS, the GNU Assembler.
  110. - GAS is free software; you can redistribute it and/or modify
  111. - it under the terms of the GNU General Public License as published by
  112. - the Free Software Foundation; either version 1, or (at your option)
  113. - any later version.
  114. - GAS is distributed in the hope that it will be useful,
  115. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  116. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  117. - GNU General Public License for more details.
  118. - You should have received a copy of the GNU General Public License
  119. - along with GAS; see the file COPYING.  If not, write to
  120. - the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  121. - /*
  122. -  * These definitions reflect only m68k.c.
  123. -  */
  124. - #define M_SUN    1
  125. --- 0 ----
  126. *** 1.3    1992/04/02 22:56:29
  127. --- m68k-opcode.h    1992/10/09 21:39:22
  128. ***************
  129. *** 1,17 ****
  130. - /*
  131. -  * HISTORY
  132. -  * 09-Aug-91  Shin Iwamoto (shin) at CANON Inc.
  133. -  *    Added the following floating-point instruction on mc68040:
  134. -  *        F[SD]ADD, F[SD]SUB, F[SD]MUL, F[SD]DIV, F[SD]ABS,
  135. -  *        F[SD]NEG, F[SD]SQRT, F[SD]MOVE
  136. -  *    Removed fsubx with one register.
  137. -  * 07-Aug-91  Shin Iwamoto (shin) at CANON Inc.
  138. -  *    Added definitions for indirectly supported floating-point
  139. -  *    instructions on mc68040.
  140. -  * 23-Jan-91  K. Chyo (chyo) at DPS of CANON Inc.
  141. -  *    Enhanced for mc68040 support.
  142. -  */
  143.   /* Opcode table for m68000/m68020 and m68881.
  144.      Copyright (C) 1989, Free Software Foundation.
  145.   
  146. --- 1,3 ----
  147. ***************
  148. *** 31,36 ****
  149. --- 17,23 ----
  150.   along with GDB or GAS; see the file COPYING.  If not, write to
  151.   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  152.      
  153.   struct m68k_opcode
  154.   {
  155.     char *name;
  156. ***************
  157. *** 100,115 ****
  158.       802    CAAR    Cache Address Register
  159.       803    MSP    Master Stack Pointer
  160.       804    ISP    Interrupt Stack Pointer
  161. - #ifdef m68040
  162. -     003    MMU Translation Control reg
  163. -     004    Instruction Transparant Tlanslation reg 0
  164. -     005    Instruction Transparant Tlanslation reg 1
  165. -     006    Data Transparant Tlanslation reg 0
  166. -     007    Data Transparant Tlanslation reg 1
  167. -     805    MMU Status reg
  168. -     806    User Root Pointer
  169. -     807    Supervisor Root Pointer
  170. - #endif m68040
  171.   
  172.       L  Register list of the type d0-d7/a0-a7 etc.
  173.          (New!  Improved!  Can also hold fp0-fp7, as well!)
  174. --- 87,92 ----
  175. ***************
  176. *** 134,145 ****
  177.      /  control, or data register            (modes 0,2,5,6,7.0,7.1,7.2,7.3)(not 1,3,4,7.4)
  178.   */
  179.   
  180. - #ifdef m68040
  181. - /*
  182. -    a  address register indirect only.  Stored as 3 bits.
  183. -    c  cache immediate data.  Stored as 2 bits.
  184. - */
  185. - #endif m68040
  186.   /* JF: for the 68851 */
  187.   /*
  188.      I didn't use much imagination in choosing the 
  189. --- 111,116 ----
  190. ***************
  191. *** 334,342 ****
  192.   
  193.   {"bkpt",    one(0044110),        one(0177770),        "Qs"},
  194.   {"bra",        one(0060000),        one(0177400),        "Bg"},
  195. ! {"bras",    one(0060000),        one(0177400),        "Bw"},
  196.   {"bsr",        one(0060400),        one(0177400),        "Bg"},
  197. ! {"bsrs",    one(0060400),        one(0177400),        "Bw"},
  198.   
  199.   {"callm",    one(0003300),        one(0177700),        "#b!s"},
  200.   {"cas2l",    two(0007374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF FOO this is really a 3 word ins */
  201. --- 305,313 ----
  202.   
  203.   {"bkpt",    one(0044110),        one(0177770),        "Qs"},
  204.   {"bra",        one(0060000),        one(0177400),        "Bg"},
  205. ! {"bras",    one(0060000),        one(0177400),        "Bg"},
  206.   {"bsr",        one(0060400),        one(0177400),        "Bg"},
  207. ! {"bsrs",    one(0060400),        one(0177400),        "Bg"},
  208.   
  209.   {"callm",    one(0003300),        one(0177700),        "#b!s"},
  210.   {"cas2l",    two(0007374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF FOO this is really a 3 word ins */
  211. ***************
  212. *** 1214,1220 ****
  213.   {"fsubw",    two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  214.   {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  215.   {"fsubx",    two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  216. ! /* {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt"}, Shin removed */
  217.   
  218.   {"ftanb",    two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  219.   {"ftand",    two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  220. --- 1185,1191 ----
  221.   {"fsubw",    two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  222.   {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  223.   {"fsubx",    two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  224. ! {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt"},
  225.   
  226.   {"ftanb",    two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  227.   {"ftand",    two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  228. ***************
  229. *** 1507,1686 ****
  230.   {"movsw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},
  231.   {"movsw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},
  232.   
  233. - #ifdef m68040
  234. - {"mov16",    two(0173040, 0100000),    two(0177770, 0100000),    "+s+1"},
  235. - {"mov16",    one(0173000),        one(0177770),        "+s#l"},
  236. - {"mov16",    one(0173010),        one(0177770),        "#l+s"},
  237. - {"mov16",    one(0173020),        one(0177770),        "as#l"},
  238. - {"mov16",    one(0173030),        one(0177770),        "#las"},
  239. - {"cinvl",    one(0172010),        one(0177470),        "c9as"},
  240. - {"cinvp",    one(0172020),        one(0177470),        "c9as"},
  241. - {"cinva",    one(0172030),        one(0177470),        "c9"},
  242. - {"cpushl",    one(0172050),        one(0177470),        "c9as"},
  243. - {"cpushp",    one(0172060),        one(0177470),        "c9as"},
  244. - {"cpusha",    one(0172070),        one(0177470),        "c9"},
  245. - {"pflushn",    one(0172400),        one(0177770),        "as"},
  246. - {"pflush",    one(0172410),        one(0177770),        "as"},
  247. - {"pflushan",    one(0172420),        one(0177770),        ""},
  248. - {"pflusha",    one(0172430),        one(0177770),        ""},
  249. - {"ptestw",    one(0172510),        one(0177770),        "as"},
  250. - {"ptestr",    one(0172550),        one(0177770),        "as"},
  251. - {"fsaddb",    two(0xF000, 0x5862),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  252. - {"fsaddd",    two(0xF000, 0x5462),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  253. - {"fsaddl",    two(0xF000, 0x4062),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  254. - {"fsaddp",    two(0xF000, 0x4C62),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  255. - {"fsadds",    two(0xF000, 0x4462),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  256. - {"fsaddw",    two(0xF000, 0x5062),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  257. - {"fsaddx",    two(0xF000, 0x0062),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  258. - {"fsaddx",    two(0xF000, 0x4862),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  259. - {"fdaddb",    two(0xF000, 0x5866),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  260. - {"fdaddd",    two(0xF000, 0x5466),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  261. - {"fdaddl",    two(0xF000, 0x4066),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  262. - {"fdaddp",    two(0xF000, 0x4C66),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  263. - {"fdadds",    two(0xF000, 0x4466),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  264. - {"fdaddw",    two(0xF000, 0x5066),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  265. - {"fdaddx",    two(0xF000, 0x0066),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  266. - {"fdaddx",    two(0xF000, 0x4866),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  267. - {"fssubb",    two(0xF000, 0x5868),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  268. - {"fssubd",    two(0xF000, 0x5468),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  269. - {"fssubl",    two(0xF000, 0x4068),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  270. - {"fssubp",    two(0xF000, 0x4C68),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  271. - {"fssubs",    two(0xF000, 0x4468),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  272. - {"fssubw",    two(0xF000, 0x5068),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  273. - {"fssubx",    two(0xF000, 0x0068),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  274. - {"fssubx",    two(0xF000, 0x4868),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  275. - {"fdsubb",    two(0xF000, 0x586C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  276. - {"fdsubd",    two(0xF000, 0x546C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  277. - {"fdsubl",    two(0xF000, 0x406C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  278. - {"fdsubp",    two(0xF000, 0x4C6C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  279. - {"fdsubs",    two(0xF000, 0x446C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  280. - {"fdsubw",    two(0xF000, 0x506C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  281. - {"fdsubx",    two(0xF000, 0x006C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  282. - {"fdsubx",    two(0xF000, 0x486C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  283. - {"fsmulb",    two(0xF000, 0x5863),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  284. - {"fsmuld",    two(0xF000, 0x5463),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  285. - {"fsmull",    two(0xF000, 0x4063),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  286. - {"fsmulp",    two(0xF000, 0x4C63),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  287. - {"fsmuls",    two(0xF000, 0x4463),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  288. - {"fsmulw",    two(0xF000, 0x5063),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  289. - {"fsmulx",    two(0xF000, 0x0063),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  290. - {"fsmulx",    two(0xF000, 0x4863),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  291. - {"fdmulb",    two(0xF000, 0x5867),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  292. - {"fdmuld",    two(0xF000, 0x5467),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  293. - {"fdmull",    two(0xF000, 0x4067),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  294. - {"fdmulp",    two(0xF000, 0x4C67),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  295. - {"fdmuls",    two(0xF000, 0x4467),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  296. - {"fdmulw",    two(0xF000, 0x5067),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  297. - {"fdmulx",    two(0xF000, 0x0067),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  298. - {"fdmulx",    two(0xF000, 0x4867),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  299. - {"fsdivb",    two(0xF000, 0x5860),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  300. - {"fsdivd",    two(0xF000, 0x5460),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  301. - {"fsdivl",    two(0xF000, 0x4060),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  302. - {"fsdivp",    two(0xF000, 0x4C60),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  303. - {"fsdivs",    two(0xF000, 0x4460),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  304. - {"fsdivw",    two(0xF000, 0x5060),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  305. - {"fsdivx",    two(0xF000, 0x0060),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  306. - {"fsdivx",    two(0xF000, 0x4860),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  307. - {"fddivb",    two(0xF000, 0x5864),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  308. - {"fddivd",    two(0xF000, 0x5464),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  309. - {"fddivl",    two(0xF000, 0x4064),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  310. - {"fddivp",    two(0xF000, 0x4C64),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  311. - {"fddivs",    two(0xF000, 0x4464),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  312. - {"fddivw",    two(0xF000, 0x5064),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  313. - {"fddivx",    two(0xF000, 0x0064),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  314. - {"fddivx",    two(0xF000, 0x4864),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  315. - {"fsabsb",    two(0xF000, 0x5858),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  316. - {"fsabsd",    two(0xF000, 0x5458),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  317. - {"fsabsl",    two(0xF000, 0x4058),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  318. - {"fsabsp",    two(0xF000, 0x4C58),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  319. - {"fsabss",    two(0xF000, 0x4458),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  320. - {"fsabsw",    two(0xF000, 0x5058),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  321. - {"fsabsx",    two(0xF000, 0x0058),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  322. - {"fsabsx",    two(0xF000, 0x4858),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  323. - {"fsabsx",    two(0xF000, 0x0058),    two(0xF1C0, 0xE07F),    "IiFt"},
  324. - {"fdabsb",    two(0xF000, 0x585C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  325. - {"fdabsd",    two(0xF000, 0x545C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  326. - {"fdabsl",    two(0xF000, 0x405C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  327. - {"fdabsp",    two(0xF000, 0x4C5C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  328. - {"fdabss",    two(0xF000, 0x445C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  329. - {"fdabsw",    two(0xF000, 0x505C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  330. - {"fdabsx",    two(0xF000, 0x005C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  331. - {"fdabsx",    two(0xF000, 0x485C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  332. - {"fdabsx",    two(0xF000, 0x005C),    two(0xF1C0, 0xE07F),    "IiFt"},
  333. - {"fsnegb",    two(0xF000, 0x585A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  334. - {"fsnegd",    two(0xF000, 0x545A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  335. - {"fsnegl",    two(0xF000, 0x405A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  336. - {"fsnegp",    two(0xF000, 0x4C5A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  337. - {"fsnegs",    two(0xF000, 0x445A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  338. - {"fsnegw",    two(0xF000, 0x505A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  339. - {"fsnegx",    two(0xF000, 0x005A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  340. - {"fsnegx",    two(0xF000, 0x485A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  341. - {"fsnegx",    two(0xF000, 0x005A),    two(0xF1C0, 0xE07F),    "IiFt"},
  342. - {"fdnegb",    two(0xF000, 0x585E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  343. - {"fdnegd",    two(0xF000, 0x545E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  344. - {"fdnegl",    two(0xF000, 0x405E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  345. - {"fdnegp",    two(0xF000, 0x4C5E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  346. - {"fdnegs",    two(0xF000, 0x445E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  347. - {"fdnegw",    two(0xF000, 0x505E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  348. - {"fdnegx",    two(0xF000, 0x005E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  349. - {"fdnegx",    two(0xF000, 0x485E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  350. - {"fdnegx",    two(0xF000, 0x005E),    two(0xF1C0, 0xE07F),    "IiFt"},
  351. - {"fssqrtb",    two(0xF000, 0x5841),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  352. - {"fssqrtd",    two(0xF000, 0x5441),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  353. - {"fssqrtl",    two(0xF000, 0x4041),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  354. - {"fssqrtp",    two(0xF000, 0x4C41),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  355. - {"fssqrts",    two(0xF000, 0x4441),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  356. - {"fssqrtw",    two(0xF000, 0x5041),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  357. - {"fssqrtx",    two(0xF000, 0x0041),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  358. - {"fssqrtx",    two(0xF000, 0x4841),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  359. - {"fssqrtx",    two(0xF000, 0x0041),    two(0xF1C0, 0xE07F),    "IiFt"},
  360. - {"fdsqrtb",    two(0xF000, 0x5845),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  361. - {"fdsqrtd",    two(0xF000, 0x5445),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  362. - {"fdsqrtl",    two(0xF000, 0x4045),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  363. - {"fdsqrtp",    two(0xF000, 0x4C45),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  364. - {"fdsqrts",    two(0xF000, 0x4445),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  365. - {"fdsqrtw",    two(0xF000, 0x5045),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  366. - {"fdsqrtx",    two(0xF000, 0x0045),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  367. - {"fdsqrtx",    two(0xF000, 0x4845),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  368. - {"fdsqrtx",    two(0xF000, 0x0045),    two(0xF1C0, 0xE07F),    "IiFt"},
  369. - {"fsmoveb",    two(0xF000, 0x5840),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  370. - {"fsmoved",    two(0xF000, 0x5440),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  371. - {"fsmovel",    two(0xF000, 0x4040),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  372. - {"fsmovep",    two(0xF000, 0x4C40),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  373. - {"fsmoves",    two(0xF000, 0x4440),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  374. - {"fsmovew",    two(0xF000, 0x5040),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  375. - {"fsmovex",    two(0xF000, 0x0040),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  376. - {"fsmovex",    two(0xF000, 0x4840),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  377. - {"fdmoveb",    two(0xF000, 0x5844),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  378. - {"fdmoved",    two(0xF000, 0x5444),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  379. - {"fdmovel",    two(0xF000, 0x4044),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  380. - {"fdmovep",    two(0xF000, 0x4C44),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  381. - {"fdmoves",    two(0xF000, 0x4444),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  382. - {"fdmovew",    two(0xF000, 0x5044),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  383. - {"fdmovex",    two(0xF000, 0x0044),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  384. - {"fdmovex",    two(0xF000, 0x4844),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  385. - #endif m68040
  386.   #ifdef m68851
  387.    /* name */    /* opcode */        /* match */        /* args */
  388.   
  389. --- 1478,1483 ----
  390. ***************
  391. *** 1886,1902 ****
  392.   int numopcodes=sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  393.   
  394.   struct m68k_opcode *endop = m68k_opcodes+sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  395. - #ifdef m68040
  396. - char *indirect_fp_opcodes[] =
  397. - {
  398. -     "facos",   "fasin",   "fatanh",  "fatan",    "fcosh",
  399. -     "fcos",    "fetoxm1", "fetox",   "fgetexp",  "fgetman", 
  400. -     "fintrz",  "fint",    "flog10",  "flog2",    "flognp1",
  401. -     "flogn",   "fmod",    "fmovecr", "frem",     "fscale",
  402. -     "fsgldiv", "fsglmul", "fsincos", "fsinh",    "fsin",
  403. -     "ftanh",   "ftan",    "ftentox", "ftwotox",
  404. - };
  405. - char **endfpinst = indirect_fp_opcodes+sizeof(indirect_fp_opcodes)/sizeof(indirect_fp_opcodes[0]);
  406. - #endif m68040
  407. --- 1683,1685 ----
  408. *** 1.3    1992/04/02 22:56:29
  409. --- m68k.c    1992/10/09 21:39:23
  410. ***************
  411. *** 1,18 ****
  412. - /*
  413. -  * HISTORY
  414. -  * 09-Sep-91  Shin Iwamoto (shin) at CANON Inc.
  415. -  *    Changed the default machine type as mc68040.
  416. -  *    Only changed the initial value of m68k_kind.
  417. -  * 09-Aug-91  Shin Iwamoto (shin) at CANON Inc.
  418. -  *    Supported -m68040 option. When -m68040 is specified,
  419. -  *    indirectly supported floating-point instructions and
  420. -  *    68020 instructions (callm and rtm) aren't assembled.
  421. -  * 31-Jul-91  Shin Iwamoto (shin) at CANON Inc.
  422. -  *    Changed <caches> definitions for CINV as mnemonic.
  423. -  * 23-Jan-91  K. Chyo (chyo) at DPS of CANON Inc.
  424. -  *    Supported instructions on mc68040.
  425. -  */
  426.   /* m68k.c  All the m68020 specific stuff in one convenient, huge,
  427.      slow to compile, easy to find file.
  428.      Copyright (C) 1987 Free Software Foundation, Inc.
  429. --- 1,3 ----
  430. ***************
  431. *** 293,315 ****
  432.   #define FPI    (MSP+1)        /* 45 */
  433.   #define FPS    (FPI+1)        /* 46 */
  434.   #define FPC    (FPS+1)        /* 47 */
  435. - #ifdef m68040
  436. - #define TC    (FPC+1)        /* 48 */
  437. - #define ITT0    (TC+1)        /* 49 */
  438. - #define ITT1    (ITT0+1)    /* 50 */
  439. - #define DTT0    (ITT1+1)    /* 51 */
  440. - #define DTT1    (DTT0+1)    /* 52 */
  441. - #define MMUSR    (DTT1+1)    /* 53 */
  442. - #define URP    (MMUSR+1)    /* 54 */
  443. - #define SRP    (URP+1)        /* 55 */
  444. - #define    NC    (SRP+1)        /* 56 */
  445. - #define    DC    (NC+1)        /* 57 */
  446. - #define    IC    (NC+2)        /* 58 */
  447. - #define    BC    (NC+3)        /* 59 */
  448. - #else /* m68040 */
  449.   /*
  450.    * these defines should be in m68k.c but
  451.    * i put them here to keep all the m68851 stuff
  452. --- 278,283 ----
  453. ***************
  454. *** 329,335 ****
  455.   #define BAC    (BAD+8)        /* 64,65,66,67, 68,69,70,71 */
  456.   #define PSR    (BAC+8)        /* 72 */
  457.   #define PCSR    (PSR+1)        /* 73 */
  458. - #endif m68040
  459.   
  460.   
  461.   /* Note that COPNUM==processor #1 -- COPNUM+7==#8, which stores as 000 */
  462. --- 297,302 ----
  463. ***************
  464. *** 418,423 ****
  465. --- 385,392 ----
  466.      the_ins.opcode[z]=the_ins.opcode[z-1];\
  467.    for(z=0;z<the_ins.nrel;z++)\
  468.      the_ins.reloc[z].n+=2;\
  469. +  for(z=0;z<the_ins.nfrag;z++)\
  470. +    the_ins.fragb[z].fragoff+=1;\
  471.    the_ins.opcode[opcode->m_codenum]=w;\
  472.    the_ins.numo++;\
  473.   }
  474. ***************
  475. *** 467,483 ****
  476.   #define getone(x)    ((((x)->m_opcode)>>16)&0xffff)
  477.   #define gettwo(x)    (((x)->m_opcode)&0xffff)
  478.   
  479. - #ifdef m68040
  480. - /*
  481. -  * When m68k_kind is 4 (meaning m68040), our as doesn't assemble indirectly
  482. -  * supported floating-point instructions. And then the default is 4.
  483. -  */
  484. - /* int    m68k_kind = 4; *
  485. - /* ++jrb -- change m68k_kind to 0, to use 68040 support use -m68040 arg */
  486. - int    m68k_kind = 4;
  487. - #endif m68040
  488.   /* JF modified this to handle cases where the first part of a symbol name
  489.      looks like a register */
  490.   
  491. --- 436,441 ----
  492. ***************
  493. *** 488,499 ****
  494.       register char c1,
  495.           c2,
  496.           c3,
  497. - #ifdef m68040
  498. -         c4,
  499. -         c5;
  500. - #else
  501.           c4;
  502. - #endif m68040
  503.       register int n = 0,
  504.           ret = FAIL;
  505.   
  506. --- 446,452 ----
  507. ***************
  508. *** 505,520 ****
  509.       c2=mklower(ccp[0][2]);
  510.       c3=mklower(ccp[0][3]);
  511.       c4=mklower(ccp[0][4]);
  512. - #ifdef m68040
  513. -     c5=mklower(ccp[0][5]);
  514. - #endif m68040
  515.   #else
  516.       c2=mklower(ccp[0][1]);
  517.       c3=mklower(ccp[0][2]);
  518.       c4=mklower(ccp[0][3]);
  519. - #ifdef m68040
  520. -     c5=mklower(ccp[0][4]);
  521. - #endif m68040
  522.   #endif
  523.       switch(c1) {
  524.       case 'a':
  525. --- 458,467 ----
  526. ***************
  527. *** 529,542 ****
  528.           }
  529.   #endif
  530.           break;
  531. - #ifdef m68040
  532. -     case 'b':
  533. -         if (c2 == 'c') {
  534. -             n = 2;
  535. -             ret = BC;
  536. -         }
  537. -         break;
  538. - #endif m68040
  539.   #ifdef m68851
  540.       case 'b':
  541.           if (c2 == 'a') {
  542. --- 476,481 ----
  543. ***************
  544. *** 594,613 ****
  545.               ret = (DRP);
  546.           }
  547.   #endif
  548. - #ifdef m68040
  549. -         else if (c2 == 't' && c3 == 't' && c4 == '0') {
  550. -              n = 4;
  551. -             ret = DTT0;
  552. -         }
  553. -         else if (c2 == 't' && c3 == 't' && c4 == '1') {
  554. -             n = 4;
  555. -             ret = DTT1;
  556. -         }
  557. -         else if (c2 == 'c') {
  558. -             n = 2;
  559. -             ret = DC;
  560. -         }
  561. - #endif m68040
  562.           break;
  563.       case 'f':
  564.           if(c2=='p') {
  565. --- 533,538 ----
  566. ***************
  567. *** 633,652 ****
  568.               n=3;
  569.               ret = ISP;
  570.           }
  571. - #ifdef m68040
  572. -         else if (c2 == 't' && c3 == 't' && c4 == '0') {
  573. -             n = 4;
  574. -             ret = ITT0;
  575. -         }
  576. -         else if (c2 == 't' && c3 == 't' && c4 == '1') {
  577. -             n = 4;
  578. -             ret = ITT1;
  579. -         }
  580. -         else if (c2 == 'c') { 
  581. -             n = 2;
  582. -             ret = IC;
  583. -         }
  584. - #endif m68040
  585.           break;
  586.       case 'm':
  587.           if(c2=='s' && c3=='p') {
  588. --- 558,563 ----
  589. ***************
  590. *** 653,674 ****
  591.               n=3;
  592.               ret = MSP;
  593.           }
  594. - #ifdef m68040
  595. -         else if (c2 == 'm' && c3 == 'u' && c4 == 's' && c5 == 'r') 
  596. -         {
  597. -             n = 5;
  598. -             ret = MMUSR;
  599. -         }
  600. - #endif m68040
  601. -         break;
  602. - #ifdef m68040
  603. -     case 'n':
  604. -         if(c2=='c') {
  605. -             n=2;
  606. -             ret = NC;
  607. -         }
  608.           break;
  609. - #endif m68040
  610.       case 'p':
  611.           if(c2=='c') {
  612.   #ifdef m68851
  613. --- 564,570 ----
  614. ***************
  615. *** 690,701 ****
  616.   #endif
  617.           break;
  618.       case 's':
  619. - #ifdef m68040
  620. -         if (c2 == 'r' && c3 == 'p') {
  621. -             n = 3;
  622. -             ret = (SRP);
  623. -         } else
  624. - #endif m68040
  625.   #ifdef m68851
  626.           if (c2 == 'c' && c3 == 'c') {
  627.               n = 3;
  628. --- 586,591 ----
  629. ***************
  630. *** 716,722 ****
  631.               ret = SFC;
  632.           }
  633.           break;
  634. ! #if defined(m68851) || defined(m68040)
  635.       case 't':
  636.           if(c2 == 'c') {
  637.               n=2;
  638. --- 606,612 ----
  639.               ret = SFC;
  640.           }
  641.           break;
  642. ! #ifdef m68851
  643.       case 't':
  644.           if(c2 == 'c') {
  645.               n=2;
  646. ***************
  647. *** 725,736 ****
  648.           break;
  649.   #endif
  650.       case 'u':
  651. - #ifdef m68040
  652. -         if (c2 == 'r' && c3 == 'p') {
  653. -             n = 3;
  654. -             ret = (URP);
  655. -         } else
  656. - #endif m68040
  657.           if(c2=='s' && c3=='p') {
  658.               n=3;
  659.               ret = USP;
  660. --- 615,620 ----
  661. ***************
  662. *** 790,803 ****
  663.           return FAIL;
  664.       }
  665.       for(strend=str;*strend;strend++)
  666. - #if defined(CANON) && defined(SUN_ASM_SYNTAX)
  667. -         if (*strend == ' ' || *strend == '\t') {
  668. -             *strend = '\0';
  669. -             break;
  670. -         }
  671. - #else
  672.           ;
  673. - #endif CANON && SUN_ASM_SYNTAX
  674.       --strend;
  675.   
  676.           /* Guess what:  A constant.  Shar and enjoy */
  677. --- 674,680 ----
  678. ***************
  679. *** 1140,1154 ****
  680.     /* Scan up to end of operation-code, which MUST end in end-of-string
  681.        or exactly 1 space. */
  682.       for (p = instring; *p != '\0'; p++)
  683. - #if defined(CANON) && defined(SUN_ASM_SYNTAX)
  684. -         /*
  685. -          * On SUN's Assembler, an operator and operands can be
  686. -          * separeted by spaces or tabs. (Shin)
  687. -          */
  688. -         if (*p == ' ' || *p == '\t')
  689. - #else
  690.           if (*p == ' ')
  691. - #endif CANON && SUN_ASUM_SYNTAX
  692.               break;
  693.   
  694.   
  695. --- 1017,1023 ----
  696. ***************
  697. *** 1164,1176 ****
  698.        look it up in the hash table, then fix it back. */   
  699.       c = *p;
  700.       *p = '\0';
  701. - #ifdef m68040
  702. -     if (m68k_kind == 4 && (
  703. -              (instring[0] == 'f' && indirect_fp_inst(instring))
  704. -             || m68020_only_inst(instring) )){
  705. -         opcode = NULL;
  706. -     } else
  707. - #endif m68040
  708.       opcode = (struct m68_incant *)hash_find (op_hash, instring);
  709.       *p = c;
  710.   
  711. --- 1033,1038 ----
  712. ***************
  713. *** 1181,1192 ****
  714.           return;
  715.       }
  716.   
  717. - #if defined(CANON) && defined(SUN_ASM_SYNTAX)
  718. -     for (; *p != '\0'; p++)
  719. -         if (!(*p == ' ' || *p == '\t'))
  720. -             break;
  721. - #endif CANON && SUN_ASM_SYNTAX
  722.     /* found a legitimate opcode, start matching operands */
  723.       for(opP= &the_ins.operands[0];*p;opP++) {
  724.           p = crack_operand (p, opP);
  725. --- 1043,1048 ----
  726. ***************
  727. *** 1315,1326 ****
  728.                       losing++;
  729.                   break;
  730.   
  731. - #ifdef m68040
  732. -             case 'a':
  733. -                 if(opP->mode!=AINDR)
  734. -                     losing++;
  735. -                 break;
  736. - #endif m68040
  737.               case 'A':
  738.                   if(opP->mode!=AREG)
  739.                       losing++;
  740. --- 1171,1176 ----
  741. ***************
  742. *** 1330,1342 ****
  743.                   if(opP->mode!=ABSL)
  744.                       losing++;
  745.                   break;
  746. - #ifdef m68040
  747. -             case 'c':
  748. -                 if(opP->mode!=MSCR || opP->reg<NC || opP->reg>BC)
  749. -                     losing++;
  750. -                 break;
  751. - #endif
  752.   
  753.               case 'C':
  754.                   if(opP->mode!=MSCR || opP->reg!=CCR)
  755. --- 1180,1185 ----
  756. ***************
  757. *** 1366,1378 ****
  758.                   break;
  759.   
  760.               case 'J':
  761. - #ifdef m68040
  762. -                 if(opP->mode!=MSCR ||
  763. -                    ((opP->reg<USP && opP->reg>MSP) &&
  764. -                     (opP->reg<TC && opP->reg>SRP)))
  765. - #else
  766.                   if(opP->mode!=MSCR || opP->reg<USP || opP->reg>MSP)
  767. - #endif m68040
  768.                       losing++;
  769.                   break;
  770.   
  771. --- 1209,1215 ----
  772. ***************
  773. *** 1526,1531 ****
  774. --- 1363,1369 ----
  775.               /* This switch is a doozy.
  776.                  What the first step; its a big one! */
  777.           switch(s[0]) {
  778.           case '*':
  779.           case '~':
  780.           case '%':
  781. ***************
  782. *** 1651,1659 ****
  783.                       else
  784.                           tmpreg=0x30+opP->reg-ADDR;    /* 6.areg */
  785.                       if(isvar(opP->con1)) {
  786. !                         if(opP->reg==PC) {
  787. !                                add_frag(adds(opP->con1),
  788. !                              offs(opP->con1),
  789.                                TAB(PCLEA,SZ_UNDEF));
  790.                               break;
  791.                           } else {
  792. --- 1489,1498 ----
  793.                       else
  794.                           tmpreg=0x30+opP->reg-ADDR;    /* 6.areg */
  795.                       if(isvar(opP->con1)) {
  796. !                         if(opP->reg==PC &&
  797. !                            !subs(opP->con1)) {
  798. !                             add_frag(adds(opP->con1),
  799. !                              offs(opP->con1)+2,
  800.                                TAB(PCLEA,SZ_UNDEF));
  801.                               break;
  802.                           } else {
  803. ***************
  804. *** 1670,1676 ****
  805.                           tmpreg=0x28+opP->reg-ADDR; /* 5.areg */
  806.   
  807.                       if(isvar(opP->con1)) {
  808. !                         if(opP->reg==PC) {
  809.                               add_fix('w',opP->con1,1);
  810.                           } else
  811.                               add_fix('w',opP->con1,0);
  812. --- 1509,1517 ----
  813.                           tmpreg=0x28+opP->reg-ADDR; /* 5.areg */
  814.   
  815.                       if(isvar(opP->con1)) {
  816. !                         if(opP->reg==PC &&
  817. !                            !subs(opP->con1)) {
  818. !                             offs(opP->con1) += 2;
  819.                               add_fix('w',opP->con1,1);
  820.                           } else
  821.                               add_fix('w',opP->con1,0);
  822. ***************
  823. *** 1729,1735 ****
  824.                           nextword +=baseo&0xff;
  825.                           addword(nextword);
  826.                           if(isvar(opP->con1))
  827. !                             add_fix('B',opP->con1,0);
  828.                           break;
  829.                       }
  830.                   } else
  831. --- 1570,1581 ----
  832.                           nextword +=baseo&0xff;
  833.                           addword(nextword);
  834.                           if(isvar(opP->con1))
  835. !                             if(opP->reg==PC &&
  836. !                                !subs(opP->con1)) {
  837. !                                 offs(opP->con1) += 2;
  838. !                                 add_fix('B',opP->con1,1);
  839. !                             } else
  840. !                                 add_fix('B',opP->con1,0);
  841.                           break;
  842.                       }
  843.                   } else
  844. ***************
  845. *** 1791,1799 ****
  846.                   addword(nextword);
  847.   
  848.                   if(isvar(opP->con1)) {
  849. !                     if(opP->reg==PC || opP->reg==ZPC) {
  850.                           add_fix(siz1==3 ? 'l' : 'w',opP->con1,1);
  851. !                         opP->con1->e_exp.X_add_number+=6;
  852.                       } else
  853.                           add_fix(siz1==3 ? 'l' : 'w',opP->con1,0);
  854.                   }
  855. --- 1637,1647 ----
  856.                   addword(nextword);
  857.   
  858.                   if(isvar(opP->con1)) {
  859. !                     if((opP->reg==PC || opP->reg==ZPC) &&
  860. !                        !subs(opP->con1)) {
  861. !                         offs(opP->con1) += (siz1==3) ? 6 : 4;
  862.                           add_fix(siz1==3 ? 'l' : 'w',opP->con1,1);
  863.                       } else
  864.                           add_fix(siz1==3 ? 'l' : 'w',opP->con1,0);
  865.                   }
  866. ***************
  867. *** 1803,1813 ****
  868.                       addword(baseo);
  869.   
  870.                   if(isvar(opP->con2)) {
  871. !                     if(opP->reg==PC || opP->reg==ZPC) {
  872. !                         add_fix(siz2==3 ? 'l' : 'w',opP->con2,1);
  873. !                         opP->con1->e_exp.X_add_number+=6;
  874. !                     } else
  875. !                         add_fix(siz2==3 ? 'l' : 'w',opP->con2,0);
  876.                   }
  877.                   if(siz2==3)
  878.                       addword(outro>>16);
  879. --- 1651,1657 ----
  880.                       addword(baseo);
  881.   
  882.                   if(isvar(opP->con2)) {
  883. !                     add_fix(siz2==3 ? 'l' : 'w',opP->con2,0);
  884.                   }
  885.                   if(siz2==3)
  886.                       addword(outro>>16);
  887. ***************
  888. *** 1924,1932 ****
  889.           case '+':
  890.           case '-':
  891.           case 'A':
  892. - #ifdef m68040
  893. -         case 'a':
  894. - #endif m68040
  895.               install_operand(s[1],opP->reg-ADDR);
  896.               break;
  897.   
  898. --- 1768,1773 ----
  899. ***************
  900. *** 1986,1992 ****
  901.                       }
  902.   
  903.                           /* Don't ask! */
  904. !                     opP->con1->e_exp.X_add_number+=2;
  905.                       add_fix('w',opP->con1,1);
  906.                   }
  907.                   addword(0);
  908. --- 1827,1833 ----
  909.                       }
  910.   
  911.                           /* Don't ask! */
  912. !                     offs(opP->con1) += 2;
  913.                       add_fix('w',opP->con1,1);
  914.                   }
  915.                   addword(0);
  916. ***************
  917. *** 2026,2037 ****
  918.               }
  919.               break;
  920.   
  921. - #ifdef m68040
  922. -         case 'c':
  923. -             install_operand(s[1],opP->reg-NC);
  924. -             break;
  925. - #endif m68040
  926.           case 'C':        /* Ignore it */
  927.               break;
  928.   
  929. --- 1867,1872 ----
  930. ***************
  931. *** 2100,2131 ****
  932.               case ISP:
  933.                   tmpreg=0x804;
  934.                   break;
  935. - #ifdef m68040
  936. -             case TC:
  937. -                 tmpreg=0x003;
  938. -                 break;
  939. -             case ITT0:
  940. -                 tmpreg=0x004;
  941. -                 break;
  942. -             case ITT1:
  943. -                 tmpreg=0x005;
  944. -                 break;
  945. -             case DTT0:
  946. -                 tmpreg=0x006;
  947. -                 break;
  948. -             case DTT1:
  949. -                 tmpreg=0x007;
  950. -                 break;
  951. -             case MMUSR:
  952. -                 tmpreg=0x805;
  953. -                 break;
  954. -             case URP:
  955. -                 tmpreg=0x806;
  956. -                 break;
  957. -             case SRP:
  958. -                 tmpreg=0x807;
  959. -                 break;
  960. - #endif m68040
  961.               default:
  962.                   abort();
  963.               }
  964. --- 1935,1940 ----
  965. ***************
  966. *** 2444,2454 ****
  967.       case '8':
  968.           the_ins.opcode[1]|=val<<10;
  969.           break;
  970. - #ifdef m68040
  971. -     case '9':
  972. -         the_ins.opcode[0]|=val<<6;
  973. -         break;
  974. - #endif m68040
  975.   #ifdef m68851
  976.       case '9':
  977.           the_ins.opcode[1]|=val<<5;
  978. --- 2253,2258 ----
  979. ***************
  980. *** 2524,2536 ****
  981.       register int c;
  982.       register char *beg_str;
  983.   
  984. - /*
  985. - #ifdef CANON && SUN_ASM_SYNTAX
  986. -     for (; *str != '\0'; str++)
  987. -         if (!(*str == ' ' || *str == '\t'))
  988. -             break;
  989. - #endif CANON && SUN_ASM_SYNTAX
  990. -  */
  991.       if(!str) {
  992.           return str;
  993.       }
  994. --- 2328,2333 ----
  995. ***************
  996. *** 3080,3086 ****
  997.       break;
  998.     case TAB(PCLEA,LONG):
  999.       subseg_change(SEG_TEXT,0);
  1000. !     fix_new(fragP,(int)(fragP->fr_fix)+2,4,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset+2,1);
  1001.       *buffer_address++ = 0x01;
  1002.       *buffer_address++ = 0x70;
  1003.       fragP->fr_fix+=2;
  1004. --- 2877,2883 ----
  1005.       break;
  1006.     case TAB(PCLEA,LONG):
  1007.       subseg_change(SEG_TEXT,0);
  1008. !     fix_new(fragP,(int)(fragP->fr_fix)+2,4,fragP->fr_symbol,(symbolS *)0,fragP->fr_offset+4,1);
  1009.       *buffer_address++ = 0x01;
  1010.       *buffer_address++ = 0x70;
  1011.       fragP->fr_fix+=2;
  1012. ***************
  1013. *** 3454,3465 ****
  1014.           break;
  1015.       case SEG_ABSOLUTE:
  1016.           switch(ok) {
  1017. - #ifdef m68040
  1018. -         case 5:
  1019. -             if(offs(exp)<0 || offs(exp)>3)
  1020. -                 goto outrange;
  1021. -             break;
  1022. - #endif m68040
  1023.           case 10:
  1024.               if(offs(exp)<1 || offs(exp)>8) {
  1025.                   as_warn("expression out of range: defaulting to 1");
  1026. --- 3251,3256 ----
  1027. ***************
  1028. *** 3604,3612 ****
  1029.           break;
  1030.   
  1031.       case 'm':
  1032. - #ifdef m68040
  1033. -         m68k_kind = 0;
  1034. - #endif m68040
  1035.           /* Gas almost ignores this option! */
  1036.           (*argP)++;
  1037.           if(**argP=='c')
  1038. --- 3395,3400 ----
  1039. ***************
  1040. *** 3621,3633 ****
  1041.           } else if(!strcmp(*argP,"68020"))
  1042.               flagseen['m']=0;
  1043.           else
  1044. - #ifdef m68040
  1045. -             if(!strcmp(*argP,"68040")) {
  1046. -             flagseen['m']=0;
  1047. -             m68k_kind = 4;
  1048. -             }
  1049. -         else
  1050. - #endif m68040
  1051.               as_warn("Unknown -m option ignored");
  1052.           while(**argP)
  1053.               (*argP)++;
  1054. --- 3409,3414 ----
  1055. ***************
  1056. *** 3777,3802 ****
  1057.       abort();
  1058.   }
  1059.   #endif
  1060. - #ifdef m68040
  1061. - indirect_fp_inst(name)
  1062. - char *name;
  1063. - {
  1064. -     char **fpinst;
  1065. -     for (fpinst = indirect_fp_opcodes; fpinst < endfpinst; fpinst++) {
  1066. -         if (!strncmp(name, *fpinst, strlen(*fpinst))
  1067. -             && strlen(name) == strlen(*fpinst)+1)
  1068. -             return TRUE;
  1069. -     }
  1070. -     return FALSE;
  1071. - }
  1072. - m68020_only_inst(name)
  1073. - char *name;
  1074. - {
  1075. -     if (!strcmp(name, "callm") || !strcmp(name, "rtm"))
  1076. -         return TRUE;
  1077. -     return FALSE;
  1078. - }
  1079. - #endif m68040
  1080. --- 3558,3560 ----
  1081. *** 1.2    1992/04/02 22:56:29
  1082. --- read.c    1992/10/09 21:39:24
  1083. ***************
  1084. *** 1117,1128 ****
  1085.           input_line_pointer --; /* Backup over what was not a ','. */
  1086.           temp_fill = 0;
  1087.       }
  1088. - #ifdef CANON
  1089. -     if ( temp_repeat == 0 ) {
  1090. -         ignore_rest_of_line();
  1091. -         return;
  1092. -     }
  1093. - #endif CANON
  1094.       if ( temp_repeat <= 0 ) {
  1095.           as_warn("Repeat < 0, .space ignored");
  1096.           ignore_rest_of_line();
  1097. --- 1117,1122 ----
  1098. *** 1.3    1992/04/03 03:32:06
  1099. --- version.c    1992/10/09 21:39:27
  1100. ***************
  1101. *** 1,15 ****
  1102.   #if defined(__STDC__) || defined(const)
  1103.   const
  1104.   #endif
  1105. - #ifdef CANON
  1106. - char version_string[] = "GNU assembler version 1.38(Modified 1.5)\n";
  1107. - #else
  1108.   #if defined(CROSSATARI) || defined(atarist) || defined(atariminix)
  1109.   char version_string[] = "GNU assembler version 1.38";
  1110.   #else
  1111.   char version_string[] = "GNU assembler version 1.38\n";
  1112.   #endif /* atari */
  1113. - #endif CANON
  1114.   
  1115.   /* DO NOT PUT COMMENTS ABOUT CHANGES IN THIS FILE.
  1116.   
  1117. --- 1,11 ----
  1118. *** 1.3    1992/06/03 18:48:09
  1119. --- write.c    1992/10/09 21:39:28
  1120. ***************
  1121. *** 1091,1097 ****
  1122.             add_number += add_symbolP -> sy_value;
  1123.             add_number -=
  1124.   #ifndef NS32K
  1125. ! /*              size + */
  1126.   #endif
  1127.                 where + fragP -> fr_address;
  1128.   #if defined(NS32K) && defined(SEQUENT_COMPATABILITY)
  1129. --- 1091,1097 ----
  1130.             add_number += add_symbolP -> sy_value;
  1131.             add_number -=
  1132.   #ifndef NS32K
  1133. !               size + 
  1134.   #endif
  1135.                 where + fragP -> fr_address;
  1136.   #if defined(NS32K) && defined(SEQUENT_COMPATABILITY)
  1137. ***************
  1138. *** 1141,1147 ****
  1139.       {
  1140.         add_number -=
  1141.   #ifndef NS32K
  1142. ! /*          size +  */
  1143.   #endif
  1144.             where + fragP -> fr_address;
  1145.         if (add_symbolP == 0)
  1146. --- 1141,1147 ----
  1147.       {
  1148.         add_number -=
  1149.   #ifndef NS32K
  1150. !           size +  
  1151.   #endif
  1152.             where + fragP -> fr_address;
  1153.         if (add_symbolP == 0)
  1154.