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.