Subject: Re: PMOVE instruction??
To: weripp <weripp@itwol.bhp.com.au>
From: Christopher R. Bowman <crb@glue.umd.edu>
List: port-mac68k
Date: 08/04/1996 21:40:00
>Does anybody have the machine language instruction syntax for the pmove
>instruction? I'm finnally trying to get NetBSD to run on my IIsi with the
>DayStar 40MHz 68040. The kernel is dying in the boot after disabling the
>MMU, so I was going to look at the MMU translation tree from the Mac side,
>and hey presto, can't use pmove under THINK C. From locore.s, I presume
>4e7b (from memory) is the instruction word for pmove, but thereafter, I'm
>lost.
>
>I getting sick of Macsbug (which doesn't really take that long), and its
>report of the MMU registers doesn't match with what's in my Motorola book.
>
>Also, does anyone know of any doco on the '040 MMU? Diffs from the '030
>MMU? etc.

4e7b is the instruction for MOVEC (from my reading of the data books it
appears that the PMOVE does not exist on the 68040).

0100 1110 0111 101x is the patern (MSB to LSB) for the instruction word of
MOVEC if x = 1 it is general register to control register, if x = 0 it is
control register to general register.  MOVEC has one extention word, and it
looks like: arrr cccc cccc cccc

a=1 means data regster
a=0 means adress register
rrr is a binary encoding of the register number
cccc cccc cccc is an encoding for the control register to move to or from.

if you are looking at locore.s then the encodings you are probably
interested in are:
004 = ITT0
005 = ITT1
006 = DTT0
007 = DTT1
003 = TC

let me know if you need more help.

PS:  I have been thinking that someone needs to write a program with a nice
GUI that allows one to visually examine the MMU translation tree.  I could
probably do the MMU stuff, but I lack the necessary mac GUI skills.

---------
Christopher R. Bowman
crb@eng.umd.edu
My home page