[comp.sys.mips] .livereg pseudo-opcode

wilken@iris.ucdavis.edu (Kent Wilken) (05/02/91)

When looking at some assembly code for the R3000 I noticed the pseudo
opcode ".livereg", which is not listed in the R2000/R3000 book by
Kane.  Can someone tell me what the purpose of this pseudo opcode is?

suneel@mips.com (Suneel Jain) (05/02/91)

In article <8886@ucdavis.ucdavis.edu> wilken@iris.ucdavis.edu (Kent Wilken) writes:
>When looking at some assembly code for the R3000 I noticed the pseudo
>opcode ".livereg", which is not listed in the R2000/R3000 book by
>Kane.  Can someone tell me what the purpose of this pseudo opcode is?

The .livereg pseudo opcode is used to pass information about which registers
are live at a jump instruction. The code generator can emit a .livereg just
before a procedure call or before the return from a procedure. This indicates
which registers are live at a call site (e.g. parameter registers, static link
register) or at a return instruction (e.g. return registers, callee save 
registers).

The assembler performs some optimizations that utilize global dataflow 
information for the real integer registers and FP registers. The .livereg 
pseudo instruction helps in this computation. Its format is given below:

    .livereg  int_bitmask fp_bitmask

The .livereg is for use by the compiler. Assembly language programmers
do not need to insert them in their .s files.

The next version of the Kane book will document the .livereg pseudo opcode.
-- 
- Suneel Jain 

EMAIL :	suneel@mips.com OR {decvax,ucbvax,ihnp4}!decwrl!mips!suneel
USMAIL:	MIPS Computer Systems,Inc., 928 Arques Avenue, Sunnyvale CA 94086.