⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcode.h

📁 Open Watcom 的 C 编译器源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
, pcode(AddInt,0)       // add 2 integers
, pcode(SubInt,0)       // subtract
, pcode(MulInt,0)       // signed multiply
, pcode(MulUInt,0)      // unsigned multiply
, pcode(DivInt,0)       // signed divide
, pcode(DivUInt,0)      // unsigned divide
, pcode(ModInt,0)       // signed modulus
, pcode(ModUInt,0)      // unsigned modulus
, pcode(OrInt,0)        // or     |
, pcode(AndInt,0)       // and    &
, pcode(XorInt,0)       // xor    ^
, pcode(NegInt,0)       // negate -
, pcode(NotInt,0)       // not    !
, pcode(ComInt,0)       // complement ~
, pcode(IShiftL1,0)     // shift integer left by 1
, pcode(IShiftLn,0)     // shift integer left by n
, pcode(IShiftRn,0)     // shift integer right by n
, pcode(IAShiftRn,0)    // shift integer arithmetic right by n
, pcode(AddLong,0)      // add 2 longs
, pcode(SubLong,0)      // subtract 2 longs
, pcode(MulLong,0)      // multiply 2 longs
, pcode(DivLong,0)      // divide 2 longs
, pcode(ModLong,0)      // modulus of 2 longs
, pcode(DivULong,0)     // divide 2 unsigned longs
, pcode(ModULong,0)     // modulus of 2 unsigned longs
, pcode(OrLong,0)       // or     |
, pcode(AndLong,0)      // and    &
, pcode(XorLong,0)      // xor    ^
, pcode(NegLong,0)      // negate -
, pcode(NotLong,0)      // not    !
, pcode(ComLong,0)      // complement ~
, pcode(LShiftL1,0)     // shift long left by 1
, pcode(LShiftLn,0)     // shift long left by n
, pcode(LShiftRn,0)     // shift long right by n
, pcode(LAShiftRn,0)    // shift long arithmetic right by n
, pcode(CmpInt,0)       // compare integers
, pcode(CmpInt0,0)      // compare with 0
, pcode(CmpLong,0)      // compare longs
, pcode(CmpNULL,0)      // compare pointer with NULL
, pcode(jmp_short,1)    // unconditional jump (1 byte offset)
, pcode(jmp_long,2)     // unconditional jump (2 byte offset)
, pcode(VoidFunc,4)     // void function call
, pcode(IntFunc,4)      // int function call
, pcode(LongFunc,4)     // long function call
, pcode(VoidHFunc,1)    // void handle function call
, pcode(IntHFunc,1)     // int handle function call
, pcode(LongHFunc,1)    // long handle function call
, pcode(RetVoid0,0)     // return void
, pcode(RetVoid2,0)     // return void (pop 2 bytes)
, pcode(RetVoid4,0)     // return void (pop 4 bytes)
, pcode(RetVoid6,0)     // return void (pop 6 bytes)
, pcode(RetVoid8,0)     // return void (pop 8 bytes)
, pcode(RetVoidn,3)     // return void followed by "ret far n" ins.
, pcode(RetInt0,0)      // return integer
, pcode(RetInt2,0)      // return integer (pop 2 bytes)
, pcode(RetInt4,0)      // return integer (pop 4 bytes)
, pcode(RetInt6,0)      // return integer (pop 6 bytes)
, pcode(RetInt8,0)      // return integer (pop 8 bytes)
, pcode(RetIntn,3)      // return int followed by "ret far n" ins.
, pcode(RetLong0,0)     // return long
, pcode(RetLong2,0)     // return long (pop 2 bytes)
, pcode(RetLong4,0)     // return long (pop 4 bytes)
, pcode(RetLong6,0)     // return long (pop 6 bytes)
, pcode(RetLong8,0)     // return long (pop 8 bytes)
, pcode(RetLongn,3)     // return long followed by "ret far n" ins.
, pcode(DiscardParm,1)  // discard n words from stack
, pcode(ByteIndex,0)    // char array[index]
, pcode(IntIndex,0)     // short array[index]
, pcode(LongIndex,0)    // long array[index]
, pcode(Cast2Char,0)    // cast value to signed char
, pcode(Cast2UChar,0)   // cast value to unsigned char
, pcode(BSwitch,2)      // switch table with byte constants
, pcode(ISwitch,2)      // switch table with integer constants
, pcode(LSwitch,2)      // switch table with long constants
, pcode(XPushChar,1)    // push signed char at offset from addr on stack
, pcode(XPushUChar,1)   // push unsigned char at offset from addr on stk
, pcode(XPushInt,1)     // push integer at offset from addr on stack
, pcode(XPushLong,1)    // push long at offset from addr on stack
, pcode(XPushDouble,1)  // push double at offset from addr on stack
, pcode(XPopChar,1)     // pop char at offset from addr on stack
, pcode(XPopInt,1)      // pop integer at offset from addr on stack
, pcode(XPopLong,1)     // pop long at offset from addr on stack
, pcode(XPopDouble,1)   // pop double at offset from addr on stack
, pcode(Pop_AX,0)       // pop parm into AX
, pcode(Pop_AX_DX,0)    // pop parms into AX and DX
, pcode(Pop_AX_DX_BX,0) // pop parms into AX and DX and BX
, pcode(Pop_AX_DX_BX_CX,0)// pop parms into AX and DX and BX and CX
, pcode(Pop_AX_BX_CX,0)   // pop parms into AX and BX and CX
, pcode(Pop_AX_BX_CX_DX,0)// pop parms into AX and BX and CX and DX
, pcode(Pop_DX_CX_BX_AX,0)// pop parms into DX and CX and BX and AX
, pcode(PushNearAddr,2) // push DGROUP + offset given in instruction
, pcode(XPushNearPtr,1) // push DGROUP + offset indirect from stack
, pcode(VoidIFunc,0)    // void indirect function call
, pcode(IntIFunc,0)     // int indirect function call
, pcode(LongIFunc,0)    // long indirect function call
, pcode(PopICall,0)     // pop indirect call address from stack
, pcode(PopINCall,0)    // pop indirect near call address from stack
, pcode(LoadCodeAddr,2) // load near addr of func for indirect call
, pcode(PushRetAddr,0)  // push far return address to pcode interpreter
, pcode(VoidINFunc,1)   // void indirect near function call
, pcode(IntINFunc,1)    // int indirect near function call
, pcode(LongINFunc,1)   // long indirect near function call
, pcode(FloatINFunc,1)  // float indirect near function call
, pcode(DoubleINFunc,1) // double indirect near function call
, pcode(StructINFunc,1) // struct indirect near function call
, pcode(TwoByteOp,1)    // prefix for 2 byte opcode
, pcode(DoubleFunc,4)   // double function call
, pcode(DoubleHFunc,1)  // double handle function call
, pcode(AddDouble,0)    // add double
, pcode(SubDouble,0)    // subtract
, pcode(MulDouble,0)    // multiply
, pcode(DivDouble,0)    // divide
, pcode(NegDouble,0)    // negate
, pcode(CmpDouble,0)    // compare
, pcode(AddFloat,0)     // add float
, pcode(SubFloat,0)     // subtract
, pcode(MulFloat,0)     // multiply
, pcode(DivFloat,0)     // divide
, pcode(NegFloat,0)     // negate
, pcode(CmpFloat,0)     // compare
};
#if defined(_DEBUG_)
 static char *PJmp_Codes[] = {
#elif defined(_PARMS_)
 static unsigned char PJmp_Parms[] = {
#else
 enum pjmpcodes {
#endif
  pcode(hop_a,1)        // hop if above
, pcode(hop_ae,1)       // hop if above or equal
, pcode(hop_b,1)        // hop if below
, pcode(hop_be,1)       // hop if below or equal
, pcode(hop_e,1)        // hop if equal
, pcode(hop_ne,1)       // hop if not equal
, pcode(hop_g,1)        // hop if greater than
, pcode(hop_ge,1)       // hop if greater than or equal
, pcode(hop_l,1)        // hop if less than
, pcode(hop_le,1)       // hop if less than or equal
, pcode(jmp_a,2)        // jump if above
, pcode(jmp_ae,2)       // jump if above or equal
, pcode(jmp_b,2)        // jump if below
, pcode(jmp_be,2)       // jump if below or equal
, pcode(jmp_e,2)        // jump if equal
, pcode(jmp_ne,2)       // jump if not equal
, pcode(jmp_g,2)        // jump if greater than
, pcode(jmp_ge,2)       // jump if greater than or equal
, pcode(jmp_l,2)        // jump if less than
, pcode(jmp_le,2)       // jump if less than or equal
};
#if defined(_DEBUG_)
 static char *P2_Codes[] = {
#elif defined(_PARMS_)
 static unsigned char P2_Parms[] = {
#else
 enum p2codes {
#endif
  pcode(StructFunc,4)     // struct function call
, pcode(StructIFunc,0)    // struct indirect function call
, pcode(RetStructn,3)     // struct return
, pcode(PostIncChar,0)    // c++
, pcode(PostIncUChar,0)   // uc++
, pcode(PostIncInt,0)     // i++
, pcode(PostIncLong,0)    // l++
, pcode(PostIncPtr2Char,0)// pc++
, pcode(PostIncPtr2Int,0) // pi++
, pcode(PostIncPtr2Long,0)// pl++
, pcode(PostIncPtr2Struct,2)// ps++
, pcode(PostDecChar,0)    // c--
, pcode(PostDecUChar,0)   // uc--
, pcode(PostDecInt,0)     // i--
, pcode(PostDecLong,0)    // l--
, pcode(PostDecPtr2Char,0)// pc--
, pcode(PostDecPtr2Int,0) // pi--
, pcode(PostDecPtr2Long,0)// pl--
, pcode(PostDecPtr2Struct,2)// ps--
, pcode(RetFloatn,3)      // return float
, pcode(RetDoublen,3)     // return double
, pcode(FloatFunc,4)      // float function call
, pcode(FloatIFunc,0)     // float indirect function call
, pcode(DoubleIFunc,0)    // double indirect function call
, pcode(PostIncFloat,0)   // f++
, pcode(PostIncDouble,0)  // d++
, pcode(PostDecFloat,0)   // f--
, pcode(PostDecDouble,0)  // d--
, pcode(Float2Int,0)      // convert float to int
, pcode(Double2Int,0)     // convert double to int
, pcode(Float2Long,0)     // convert float to long
, pcode(Double2Long,0)    // convert double to long
, pcode(Int2Float,0)      // convert int to float
, pcode(Long2Float,0)     // convert long to float
, pcode(Double2Float,0)   // convert double to float
, pcode(Int2Double,0)     // convert int to double
, pcode(Long2Double,0)    // convert long to double
, pcode(ULong2Double,0)   // convert unsigned long to double
, pcode(Float2Double,0)   // convert float to double
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -