From 33ea935548e0389f36f583fd826a09b7277ce85c Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 5 Aug 2012 17:44:11 +0000 Subject: I learned how to spell PSEUDO git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5010 42af7a65-404d-4744-a932-0658087f49c3 --- misc/pascal/include/podefs.h | 408 +++++++++++++++++++++---------------------- 1 file changed, 204 insertions(+), 204 deletions(-) (limited to 'misc/pascal/include/podefs.h') diff --git a/misc/pascal/include/podefs.h b/misc/pascal/include/podefs.h index 25d0042b6..9d372b402 100644 --- a/misc/pascal/include/podefs.h +++ b/misc/pascal/include/podefs.h @@ -1,204 +1,204 @@ -/*********************************************************************** - * podefs.h - * Logical P-code operation code definitions - * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ***********************************************************************/ - -#ifndef __PODEFS_H -#define __PODEFS_H - -/* These definitions represent logical operations as needed by the - * the compiler. The specific INSN generation layer must interpret - * these requests as is appropriate to the supported INSNS. - */ - -enum pcode_e -{ - - /**------------------------------------------------------------------- - * OPCODES WITH NO ARGUMENTS - **-------------------------------------------------------------------**/ - - /* Program control (No stack arguments) */ - - opNOP = 0, - - /* Arithmetic & logical & and integer conversions (One stack argument) */ - - opNEG, opABS, opINC, opDEC, opNOT, - - /* Arithmetic & logical (Two stack arguments) */ - - opADD, opSUB, opMUL, opDIV, opMOD, opSLL, opSRL, opSRA, opOR, opAND, - - /* Comparisons (One stack argument) */ - - opEQUZ, opNEQZ, opLTZ, opGTEZ, opGTZ, opLTEZ, - - /* Comparisons (Two stack arguments) */ - - opEQU, opNEQ, opLT, opGTE, opGT, opLTE, - opBIT, - - /* Load Immediate */ - - opLDI, opLDIB, opLDIM, - - /* Store Immediate */ - - opSTI, opSTIB, opSTIM, - - /* Data stack */ - - opDUP, opPUSHS, opPOPS, - - /* Program control (No stack arguments) - * Behavior: - * Pop return address - * Pop saved base register (BR) - * Discard saved base address - * Set program counter (PC) to return address - */ - - opRET, - - /* System Functions (No stack arguments) */ - - opEND, - - /**------------------------------------------------------------------- - ** OPCODES WITH ONE ARGUMENT - **-------------------------------------------------------------------**/ - - /* Floating point operations: arg = FP op-code */ - - opFLOAT, - - /* Program control: arg = unsigned label (One stack argument) */ - - opJEQUZ, opJNEQZ, - - /* Program control: arg = unsigned label (no stack arguments) */ - - opJMP, - - /* Program control: arg = unsigned label (One stack argument) */ - - opJEQU, opJNEQ, opJLT, opJGTE, opJGT, opJLTE, - - /* Load: arg = unsigned base offset */ - - opLD, opLDH, opLDB, opLDM, - - /* Store: arg = unsigned base offset */ - - opST, opSTB, opSTM, - - /* Load Indexed: arg = unsigned base offset */ - - opLDX, opLDXB, opLDXM, - - /* Store Indexed: arg16 = unsigned base offset */ - - opSTX, opSTXB, opSTXM, - - /* Load address relative to stack base: arg = unsigned offset */ - - opLA, - - /* Load absolute stack address: arg = RODATA offset (No stack arguments) */ - - opLAC, - - /* Data stack: arg = 16 bit signed data (no stack arguments) */ - - opPUSH, opINDS, - - /* Load address relative to stack base: arg1 = unsigned offset, TOS=index */ - - opLAX, - - /* System functions: arg = 16-bit library call identifier */ - - opLIB, - - /* Program control: arg = unsigned label (no stack arguments) */ - - opLABEL, - - /**------------------------------------------------------------------- - ** OPCODES WITH TWO ARGUMENTS - **-------------------------------------------------------------------**/ - - /* Program Control: arg1 = level; arg2 = unsigned label */ - - opPCAL, - - /* Load: arg1 = level; arg2 = signed frame offset */ - - opLDS, opLDSH, opLDSB, opLDSM, - - /* Store: arg1 = level; arg2 = signed frame offset */ - - opSTS, opSTSB, opSTSM, - - /* Load Indexed: arg1 = level; arg2 = signed frame offset */ - - opLDSX, opLDSXB, opLDSXM, - - /* Store Indexed: arg1 = level; arg2 = signed frame offset */ - - opSTSX, opSTSXB, opSTSXM, - - /* FOR LAS/LASX arg1 = level; arg2 = signed frame offset - * (no stack arguments) - */ - - opLAS, opLASX, - - /* System calls: - * For SYSIO: arg1 = file number; arg2 = sub-function code - */ - - opSYSIO, - - /* Psuedo-operations: - * For LINE: arg1 = file number; arg2 = line number - */ - - opLINE, - - NUM_OPCODES -}; - -#endif /* __PODEFS_H */ +/*********************************************************************** + * podefs.h + * Logical P-code operation code definitions + * + * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ***********************************************************************/ + +#ifndef __PODEFS_H +#define __PODEFS_H + +/* These definitions represent logical operations as needed by the + * the compiler. The specific INSN generation layer must interpret + * these requests as is appropriate to the supported INSNS. + */ + +enum pcode_e +{ + + /**------------------------------------------------------------------- + * OPCODES WITH NO ARGUMENTS + **-------------------------------------------------------------------**/ + + /* Program control (No stack arguments) */ + + opNOP = 0, + + /* Arithmetic & logical & and integer conversions (One stack argument) */ + + opNEG, opABS, opINC, opDEC, opNOT, + + /* Arithmetic & logical (Two stack arguments) */ + + opADD, opSUB, opMUL, opDIV, opMOD, opSLL, opSRL, opSRA, opOR, opAND, + + /* Comparisons (One stack argument) */ + + opEQUZ, opNEQZ, opLTZ, opGTEZ, opGTZ, opLTEZ, + + /* Comparisons (Two stack arguments) */ + + opEQU, opNEQ, opLT, opGTE, opGT, opLTE, + opBIT, + + /* Load Immediate */ + + opLDI, opLDIB, opLDIM, + + /* Store Immediate */ + + opSTI, opSTIB, opSTIM, + + /* Data stack */ + + opDUP, opPUSHS, opPOPS, + + /* Program control (No stack arguments) + * Behavior: + * Pop return address + * Pop saved base register (BR) + * Discard saved base address + * Set program counter (PC) to return address + */ + + opRET, + + /* System Functions (No stack arguments) */ + + opEND, + + /**------------------------------------------------------------------- + ** OPCODES WITH ONE ARGUMENT + **-------------------------------------------------------------------**/ + + /* Floating point operations: arg = FP op-code */ + + opFLOAT, + + /* Program control: arg = unsigned label (One stack argument) */ + + opJEQUZ, opJNEQZ, + + /* Program control: arg = unsigned label (no stack arguments) */ + + opJMP, + + /* Program control: arg = unsigned label (One stack argument) */ + + opJEQU, opJNEQ, opJLT, opJGTE, opJGT, opJLTE, + + /* Load: arg = unsigned base offset */ + + opLD, opLDH, opLDB, opLDM, + + /* Store: arg = unsigned base offset */ + + opST, opSTB, opSTM, + + /* Load Indexed: arg = unsigned base offset */ + + opLDX, opLDXB, opLDXM, + + /* Store Indexed: arg16 = unsigned base offset */ + + opSTX, opSTXB, opSTXM, + + /* Load address relative to stack base: arg = unsigned offset */ + + opLA, + + /* Load absolute stack address: arg = RODATA offset (No stack arguments) */ + + opLAC, + + /* Data stack: arg = 16 bit signed data (no stack arguments) */ + + opPUSH, opINDS, + + /* Load address relative to stack base: arg1 = unsigned offset, TOS=index */ + + opLAX, + + /* System functions: arg = 16-bit library call identifier */ + + opLIB, + + /* Program control: arg = unsigned label (no stack arguments) */ + + opLABEL, + + /**------------------------------------------------------------------- + ** OPCODES WITH TWO ARGUMENTS + **-------------------------------------------------------------------**/ + + /* Program Control: arg1 = level; arg2 = unsigned label */ + + opPCAL, + + /* Load: arg1 = level; arg2 = signed frame offset */ + + opLDS, opLDSH, opLDSB, opLDSM, + + /* Store: arg1 = level; arg2 = signed frame offset */ + + opSTS, opSTSB, opSTSM, + + /* Load Indexed: arg1 = level; arg2 = signed frame offset */ + + opLDSX, opLDSXB, opLDSXM, + + /* Store Indexed: arg1 = level; arg2 = signed frame offset */ + + opSTSX, opSTSXB, opSTSXM, + + /* FOR LAS/LASX arg1 = level; arg2 = signed frame offset + * (no stack arguments) + */ + + opLAS, opLASX, + + /* System calls: + * For SYSIO: arg1 = file number; arg2 = sub-function code + */ + + opSYSIO, + + /* Pseudo-operations: + * For LINE: arg1 = file number; arg2 = line number + */ + + opLINE, + + NUM_OPCODES +}; + +#endif /* __PODEFS_H */ -- cgit v1.2.3