NachOS/code/bin/instr.h

21 lines
678 B
C

/*
Copyright (c) 1992-1993 The Regents of the University of California.
All rights reserved. See copyright.h for copyright notice and limitation
of liability and disclaimer of warranty provisions.
*/
#include "copyright.h"
/* Instruction formats */
#define rd(i) (((i) >> 11) & 0x1f)
#define rt(i) (((i) >> 16) & 0x1f)
#define rs(i) (((i) >> 21) & 0x1f)
#define shamt(i) (((i) >> 6) & 0x1f)
#define immed(i) (((i) & 0x8000) ? (i)|(-0x8000) : (i)&0x7fff)
#define off26(i) (((i)&((1<<26)-1))<<2)
#define top4(i) (((i)&(~((1<<28)-1))))
#define off16(i) (immed(i)<<2)
#define extend(i, hibitmask) (((i)&(hibitmask)) ? ((i)|(-(hibitmask))) : (i))