1*598Sbill /* Copyright (c) 1980 Regents of the University of California */ 2*598Sbill static char sccsid[] = "@(#)aspseudo.c 4.1 08/13/80"; 3*598Sbill #include <stdio.h> 4*598Sbill #include <sys/types.h> 5*598Sbill #include "as.h" 6*598Sbill 7*598Sbill #define OP(name,opcode,nargs,arg1,arg2,arg3,arg4,arg5,arg6) \ 8*598Sbill { \ 9*598Sbill name,(nargs==0 ? INST0:INSTn), opcode,nargs, \ 10*598Sbill arg1,arg2,arg3,arg4,arg5,arg6 \ 11*598Sbill } 12*598Sbill #define PSEUDO(name, type, tag) \ 13*598Sbill { \ 14*598Sbill name, tag, type \ 15*598Sbill } 16*598Sbill 17*598Sbill readonly struct instab instab[] = { 18*598Sbill PSEUDO(".space", 0, ISPACE), 19*598Sbill PSEUDO(".fill", 0, IFILL), 20*598Sbill PSEUDO(".byte", 0, IBYTE), 21*598Sbill PSEUDO(".word", 0, IWORD), 22*598Sbill PSEUDO(".long", 0, ILONG), 23*598Sbill PSEUDO(".int", 0, IINT), 24*598Sbill PSEUDO(".data", 0, IDATA), 25*598Sbill PSEUDO(".globl", 0, IGLOBAL), 26*598Sbill PSEUDO(".set", 0, ISET), 27*598Sbill PSEUDO(".text", 0, ITEXT), 28*598Sbill PSEUDO(".comm", 0, ICOMM), 29*598Sbill PSEUDO(".lcomm", 0, ILCOMM), 30*598Sbill PSEUDO(".lsym", 0, ILSYM), 31*598Sbill PSEUDO(".align", 0, IALIGN), 32*598Sbill PSEUDO(".float", 0, IFLOAT), 33*598Sbill PSEUDO(".double", 0, IDOUBLE), 34*598Sbill PSEUDO(".org", 0, IORG), 35*598Sbill PSEUDO(".stab", 0, ISTAB), 36*598Sbill PSEUDO(".stabs", 0, ISTABSTR), 37*598Sbill PSEUDO(".stabn", 0, ISTABNONE), 38*598Sbill PSEUDO(".stabd", 0, ISTABDOT), 39*598Sbill PSEUDO(".ascii", 0, IASCII), 40*598Sbill PSEUDO(".asciz", 0, IASCIZ), 41*598Sbill PSEUDO(".file", 0, IFILE), 42*598Sbill PSEUDO(".line", 0, ILINENO), 43*598Sbill PSEUDO(".ABORT", 0, IABORT), 44*598Sbill 45*598Sbill PSEUDO("r0", 0, REG), 46*598Sbill PSEUDO("r1", 1, REG), 47*598Sbill PSEUDO("r2", 2, REG), 48*598Sbill PSEUDO("r3", 3, REG), 49*598Sbill PSEUDO("r4", 4, REG), 50*598Sbill PSEUDO("r5", 5, REG), 51*598Sbill PSEUDO("r6", 6, REG), 52*598Sbill PSEUDO("r7", 7, REG), 53*598Sbill PSEUDO("r8", 8, REG), 54*598Sbill PSEUDO("r9", 9, REG), 55*598Sbill PSEUDO("r10", 10, REG), 56*598Sbill PSEUDO("r11", 11, REG), 57*598Sbill PSEUDO("r12", 12, REG), 58*598Sbill PSEUDO("r13", 13, REG), 59*598Sbill PSEUDO("r14", 14, REG), 60*598Sbill PSEUDO("r15", 15, REG), 61*598Sbill PSEUDO("ap", 12, REG), 62*598Sbill PSEUDO("fp", 13, REG), 63*598Sbill PSEUDO("sp", 14, REG), 64*598Sbill PSEUDO("pc", 15, REG), 65*598Sbill 66*598Sbill PSEUDO("jcc", 0x1e, IJXXX), 67*598Sbill PSEUDO("jcs", 0x1f, IJXXX), 68*598Sbill PSEUDO("jeql", 0x13, IJXXX), 69*598Sbill PSEUDO("jeqlu", 0x13, IJXXX), 70*598Sbill PSEUDO("jgeq", 0x18, IJXXX), 71*598Sbill PSEUDO("jgequ", 0x1e, IJXXX), 72*598Sbill PSEUDO("jgtr", 0x14, IJXXX), 73*598Sbill PSEUDO("jgtru", 0x1a, IJXXX), 74*598Sbill PSEUDO("jleq", 0x15, IJXXX), 75*598Sbill PSEUDO("jlequ", 0x1b, IJXXX), 76*598Sbill PSEUDO("jlss", 0x19, IJXXX), 77*598Sbill PSEUDO("jlssu", 0x1f, IJXXX), 78*598Sbill PSEUDO("jneq", 0x12, IJXXX), 79*598Sbill PSEUDO("jnequ", 0x12, IJXXX), 80*598Sbill PSEUDO("jvc", 0x1c, IJXXX), 81*598Sbill PSEUDO("jvs", 0x1d, IJXXX), 82*598Sbill PSEUDO("jbr", 0x11, IJXXX), 83*598Sbill PSEUDO("jbc", 0xe1, IJXXX), 84*598Sbill PSEUDO("jbs", 0xe0, IJXXX), 85*598Sbill PSEUDO("jbcc", 0xe5, IJXXX), 86*598Sbill PSEUDO("jbsc", 0xe4, IJXXX), 87*598Sbill PSEUDO("jbcs", 0xe3, IJXXX), 88*598Sbill PSEUDO("jbss", 0xe2, IJXXX), 89*598Sbill PSEUDO("jlbc", 0xe9, IJXXX), 90*598Sbill PSEUDO("jlbs", 0xe8, IJXXX), 91*598Sbill 92*598Sbill #include "instrs" 93*598Sbill 94*598Sbill 0 95*598Sbill }; 96