home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD2.iso / ASCII / TEXTE / SCENE / AMIGA / 68060Guide.TXT < prev    next >
Encoding:
Text File  |  1994-03-26  |  4.8 KB  |  144 lines

  1. @BEGIN_FILE_ID.DIZ
  2. 68060 Guide
  3. @END_FILE_ID.DIZ
  4. ******************************************************************************
  5. *                                                                            *
  6. * 68060 Upgrade Software Guide                                                  *
  7. *                                                                            *
  8. * Copyright Ralph Schmidt                                                    *
  9. *                                                                            *
  10. * Phase5/Advanced Systems&Software                                           *
  11. *                                                                            *
  12. * Rev 2 - Rev 1                                                                      *
  13. *
  14. * Forgot to mention the AFB_68060 Bit
  15. *
  16. * Rev 1
  17. *                                                                            *
  18. *                                                                            *
  19. * EMail: laire@uni-paderborn.de                                              *
  20. *                                                                            *
  21. ******************************************************************************
  22.  
  23. 0) Advanced System & Software will sell the first 060 accelerator,
  24.    namely the Cyberstorm 060, rather soon and wants to achieve a smooth
  25.    integration into the Amiga.
  26.    Therefore we hope that software companys and pd programmers
  27.    will adopt their software to deal with the 68060.
  28.  
  29. 1) 68060 Flag in ExecBase->AttnFlags
  30.  
  31. ;exec/execbase.i
  32.     BITDEF    AF,FPU40,6    ; Set if 68040/68060 FPU
  33.     BITDEF    AF,68060,7    ; Set if 68060
  34.  
  35. ;exec/execbase.h
  36. #define    AFF_68060    (1L<<7)
  37.  
  38.  
  39. 2) Inststructions supported by the 68040 but not by the 68060 directly that
  40.    can hurt performance:
  41.  
  42.  o divx.l (64bit divide)
  43.  o mulx.l (64bit multiply)
  44.  o fdbcc
  45.  o fscc
  46.  o movep
  47.  o There are other instructions that are not supported or have to
  48.    be emulated but these aren't relevant for user applications.
  49.  
  50. 3) Instructions supported by the 68060 in hardware that are emulated on
  51.    the 68040:
  52.  
  53.  o fint
  54.  o fintrz
  55.  
  56. 4) Emulation limitations
  57.  
  58. The emulation can't reliably emulate unsupported instructions
  59. that access the (ssp) in a way that it contradicts the basic
  60. definition of a stack. (ssp)=sp in supervisor mode.
  61. I don't think anybody is using such constructs in his software
  62. but I want to mention it to stop anybody from using these:
  63.  
  64. div{u,s}.l        -(ssp),dr:dq
  65. mul{u,s}.l        -(ssp),dr:dq
  66. f<op>.p            -(ssp),fpn
  67. f<op>.p            fpn,(ssp)+
  68. f<op>.{b,w,l,s,d,x}    -(ssp),fpn
  69. fs<cc>.b        -(ssp)
  70. fmovem.x        -(ssp),dn
  71. fmovem.x        dn,(ssp)+
  72. f<op>.x            fpn,(ssp)+    ;Underflow,SNAN exception
  73. f<op>.{b,w,l}        fpn,(ssp)+    ;Enabled OPERR
  74.  
  75.  
  76.  
  77. 5) Other software problems.
  78.  
  79.   o Don't use Aztec C.
  80.     It is not compatible with the 68060.
  81.     Popular applications with this problem: CED 2.02,CED 3.5,Mand2000D
  82.     *I fixed this by patching Supervisor()*,
  83.     so don't worry about your programs but
  84.     don't use it in future software if possible.
  85.  
  86.     Here's the bad Code:
  87.  
  88.     btst.b    #4,$129(a6)        ;check for 68881 flag in AttnFlags
  89.     beq    1$            ;skip if not
  90.     lea    2$,a5
  91.     jsr    -30(a6)            ;do it in supervisor mode
  92.     bra    1$
  93.     2$
  94.     clr.l    -(sp)
  95.     frestore (sp)+            ;reset the ffp stuff
  96.     ;The 68060 FRestore stackframe is 12 bytes long but it only created
  97.     ;a NULL frame with the size of 4 Bytes so the Stack is wrong afterwards.
  98.     ;RTE->jump into unknown regions...crash
  99.     rte                ;and return
  100.  
  101. 6) New Stackframe format
  102.  
  103.    These informations are only interesting for Debugger programmers
  104.    and kernel hackers.
  105.  
  106.    o 3-Byte in the 1st Longword = 0 then NULL Stackframe.
  107.      xxxx00xx    ;1st Longword of the FPU stackframe
  108.      xxxxxxxx    ;2nd Longword of the FPU stackframe
  109.      xxxxxxxx    ;3rd Longword of the FPU stackframe
  110.      xxxxxxxx    ;PC
  111.      xxxx    ;SR
  112.      d0-a6    ;Registers
  113.  
  114.  
  115.    o 3-Byte in the 1st Longword !=0 then BUSY Stackframe.
  116.      ffffffff    ;Busy Fake Longword
  117.      xxxxxxxx    ;FPCR
  118.      xxxxxxxx    ;FPSR
  119.      xxxxxxxx    ;FPIAR
  120.      fp0-fp7    ;FPU Registers
  121.      xxxxxxxx    ;1st Longword of the FPU stackframe
  122.      xxxxxxxx    ;2nd Longword of the FPU stackframe
  123.      xxxxxxxx    ;3rd Longword of the FPU stackframe
  124.      xxxxxxxx    ;PC
  125.      xxxx    ;SR
  126.      d0-a6    ;Registers   
  127.  
  128.  
  129. 7) MMU Table differences
  130.  
  131.    The 68040 and 68060 mmu tables are almost the same but there is
  132.    an important difference. For the 68060 the MMU-Tables have to
  133.    be placed into non-cached ram!!!!!!!
  134.    So if you manipulate the mmu-table you have to mark the pages
  135.    with your added tables as non-cacheable.
  136.    Another difference is that the Cyberstorm software uses the
  137.    area $ffff8000-$ffffffff for itself.
  138.    You are NOT allowed to change the mmu-table that this area
  139.    is touched in any way. This can lead to serious crashes.
  140.  
  141.  
  142. 8) Barfly 1.09 is the first Assembler/Debugger that supports the
  143.    68060. It can be found on aminet:dev/asm/barfly1_09.lha
  144.