[comp.sys.mips] undocumented ops/pseudo-ops

jordan@aero.org (Larry M. Jordan) (06/01/91)

The mips "Assembly Language Programmer's Guide" dated
1/15/87 does not document the following ops/pseudo-ops:

  o  mfc1.d (mfc1.s)
  o  .alias
  o  .noalias

I'm sure we have update inserts, but I doubt if they'll
be of much help.  Anyone know precisely what these do?
(I could guess, but would hate to be wrong).

--Larry

rogerk@mips.com (Roger B.A. Klorese) (06/01/91)

In article <1991May31.181807.23657@aero.org> jordan@aero.org (Larry M. Jordan) writes:
>The mips "Assembly Language Programmer's Guide" dated
>1/15/87 does not document the following ops/pseudo-ops:
>
>  o  mfc1.d (mfc1.s)
>  o  .alias
>  o  .noalias
>
>I'm sure we have update inserts, but I doubt if they'll
>be of much help.  Anyone know precisely what these do?
>(I could guess, but would hate to be wrong).

From the April 1990 edition:

Page 8-1:

.alias <gpreg>,<gpreg>

Indicates that memory reference through the two registers will overlap.
The compiler uses this form to improve instruction scheduling.

.noalias <reg1>,<reg2>

reg1 and reg2, when used as indexed registers to memory will never
point to the same memory.  The assembler will use this as a hint to
make more liberal assumptions about resource dependency in the program.

Also, mfc1.d is an architecture (but not native) instruction, which
is assembled into a pair of mfc1's:

mfc1.d $4, $f2

...becomes:

  0x0:	44041800	mfc1	r4,$f3
  0x4:	44051000	mfc1	r5,$f2
-- 
ROGER B.A. KLORESE                                  MIPS Computer Systems, Inc.
MS 6-05    930 DeGuigne Dr.   Sunnyvale, CA  94088              +1 408 524-7421
rogerk@mips.COM                               {ames,decwrl,pyramid}!mips!rogerk
"What the public reproaches you for -- cultivate it!  It's you." - Jean Cocteau