pike.git / src / code / ia32.h

version» Context lines:

pike.git/src/code/ia32.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.   */      /* #define ALIGN_PIKE_JUMPS 8 */      #include "pike_cpulib.h" + #include "pike_memory.h"      #define OPCODE_INLINE_BRANCH   #define OPCODE_RETURN_JUMPADDR      #if !defined (CL_IA32_ASM_STYLE) && !defined (GCC_IA32_ASM_STYLE)   #error Dont know how to inline assembler with this compiler   #endif      #ifdef CL_IA32_ASM_STYLE   
pike.git/src/code/ia32.h:42: Inside #if defined(OPCODE_RETURN_JUMPADDR)
  #ifdef OPCODE_RETURN_JUMPADDR   /* Adjust for the machine code inserted after the call for I_JUMP opcodes. */   #define JUMP_EPILOGUE_SIZE 2   #define JUMP_SET_TO_PC_AT_NEXT(PC) \    ((PC) = PROG_COUNTER + JUMP_EPILOGUE_SIZE)   #else   #define JUMP_EPILOGUE_SIZE 0   #endif      #define LOW_GET_JUMP() \ -  EXTRACT_INT(PROG_COUNTER + JUMP_EPILOGUE_SIZE) +  (INT32)get_unaligned32(PROG_COUNTER + JUMP_EPILOGUE_SIZE)   #define LOW_SKIPJUMP() \    (SET_PROG_COUNTER(PROG_COUNTER + JUMP_EPILOGUE_SIZE + sizeof(INT32)))         #define ins_pointer(PTR) ins_int((PTR), (void (*)(char))add_to_program)   #define read_pointer(OFF) read_int(OFF)   #define upd_pointer(OFF, PTR) upd_int(OFF, PTR)   #define ins_align(ALIGN) do { \    while(Pike_compiler->new_program->num_program % (ALIGN)) { \    add_to_program(0); \    } \    } while(0)   #define ins_byte(VAL) add_to_program(VAL)   #define ins_data(VAL) ins_int((VAL), (void (*)(char))add_to_program) - #define read_program_data(PTR, OFF) EXTRACT_INT((PTR) + (sizeof(INT32)*(OFF))) + #define read_program_data(PTR, OFF) (INT32)get_unaligned32((PTR) + (sizeof(INT32)*(OFF)))      void ia32_update_pc(void);      #define UPDATE_PC() ia32_update_pc()      extern ptrdiff_t ia32_prev_stored_pc;      #define ADJUST_PIKE_PC(pc) do { \    ia32_prev_stored_pc = pc; \    DO_IF_DEBUG( \
pike.git/src/code/ia32.h:93:    size_t rel_ = p_->num_relocations; \    INT32 delta_ = p_->program - op_; \    if(delta_) { \    while (rel_--) { \    *((INT32 *)(op_ + p_->relocations[rel_]))+=delta_; \    } \    } \    } while(0)       - struct dynamic_buffer_s; + struct byte_buffer;   struct program; - void ia32_encode_program(struct program *p, struct dynamic_buffer_s *buf); + void ia32_encode_program(struct program *p, struct byte_buffer *buf);   void ia32_decode_program(struct program *p);      #define ENCODE_PROGRAM(P, BUF) ia32_encode_program(P, BUF)   #define DECODE_PROGRAM(P) ia32_decode_program(p)      INT32 ia32_ins_f_jump(unsigned int op, int backward_jump);   INT32 ia32_ins_f_jump_with_arg(unsigned int op, unsigned INT32 a, int backward_jump);   INT32 ia32_ins_f_jump_with_two_args(unsigned int op,    unsigned INT32 a, unsigned INT32 b,    int backward_jump);