pike.git / src / code / ppc32.h

version» Context lines:

pike.git/src/code/ppc32.h:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: ppc32.h,v 1.18 2002/10/23 14:58:26 marcus Exp $ + || $Id: ppc32.h,v 1.19 2002/11/04 17:05:31 marcus Exp $   */      #define PPC_INSTR_B_FORM(OPCD,BO,BI,BD,AA,LK) \    add_to_program(((OPCD)<<26)|((BO)<<21)|((BI)<<16)| \    (((BD)&0x3fff)<<2)|((AA)<<1)|(LK))   #define PPC_INSTR_D_FORM(OPCD,S,A,d) \    add_to_program(((OPCD)<<26)|((S)<<21)|((A)<<16)|((d)&0xffff))   #define PPC_INSTR_I_FORM(OPCD,LI,AA,LK) \    add_to_program(((OPCD)<<26)|((LI)&0x03fffffc)|((AA)<<1)|(LK))   #define PPC_INSTR_M_FORM(OPCD,S,A,SH,MB,ME,Rc) \
pike.git/src/code/ppc32.h:63:    ADDIS(reg_, 0, val_ >> 16); \    if (val_ & 0xffff) { \    /* ori reg,reg,%lo(val) */ \    ORI(reg_, reg_, val_); \    } \    } \    } while(0)      #define PPC_SPREG_LR 8    - #define PPC_REG_RET 0 + #define PPC_REG_RET 3      #define PPC_REG_ARG1 3   #define PPC_REG_ARG2 4   #define PPC_REG_ARG3 5      #define PPC_REG_PIKE_PC 7   #define PPC_REG_PIKE_MARK_SP 8   #define PPC_REG_PIKE_FP 9   #define PPC_REG_PIKE_SP 10   
pike.git/src/code/ppc32.h:172:    ppc32_codegen_state |= PPC_CODEGEN_PC_ISSET; \    } while (0)      #define ins_pointer(PTR) add_to_program((INT32)(PTR))   #define read_pointer(OFF) (Pike_compiler->new_program->program[(INT32)(OFF)])   #define upd_pointer(OFF,PTR) (Pike_compiler->new_program->program[(INT32)(OFF)] = (INT32)(PTR))   #define ins_align(ALIGN)   #define ins_byte(VAL) add_to_program((INT32)(VAL))   #define ins_data(VAL) add_to_program((INT32)(VAL))    - INT32 ppc32_ins_f_jump(unsigned int b); + INT32 ppc32_ins_f_jump(unsigned int a); + INT32 ppc32_ins_f_jump_with_arg(unsigned int a, unsigned INT32 b); + INT32 ppc32_ins_f_jump_with_2_args(unsigned int a, unsigned INT32 b, unsigned INT32 c);   void ppc32_update_f_jump(INT32 offset, INT32 to_offset);   INT32 ppc32_read_f_jump(INT32 offset);   #define INS_F_JUMP ppc32_ins_f_jump -  + #define INS_F_JUMP_WITH_ARG ppc32_ins_f_jump_with_arg + #define INS_F_JUMP_WITH_TWO_ARGS ppc32_ins_f_jump_with_2_args   #define UPDATE_F_JUMP ppc32_update_f_jump   #define READ_F_JUMP ppc32_read_f_jump      #define READ_INCR_BYTE(PC) (((PC)++)[0])      #if 0   #define RELOCATE_program(P, NEW) do { \    PIKE_OPCODE_T *op_ = NEW; \    struct program *p_ = P; \    size_t rel_ = p_->num_relocations; \
pike.git/src/code/ppc32.h:236:      #define CALL_MACHINE_CODE(pc) \    __asm__ __volatile__( " mtctr %0\n" \    " mr "PPC_REGNAME(31)",%1\n" \    " bctr" \    : \    : "r" (pc), "r" (&Pike_interpreter) \    : "ctr", "lr", "cc", "memory", "r31", "r0", \    "r3", "r4", "r5", "r6", "r7", "r8", "r9", \    "r10", "r11", "r12") +  + #define OPCODE_INLINE_BRANCH +