From: Armin R. <ar...@us...> - 2002-06-07 15:36:51
|
Update of /cvsroot/psyco/psyco/c In directory usw-pr-cvs1:/tmp/cvs-serv13850 Modified Files: encoding.h processor.c processor.h psyco.h pycencoding.h Log Message: warning fixes for VC++; still working on the VC++6 hang-up... Index: encoding.h =================================================================== RCS file: /cvsroot/psyco/psyco/c/encoding.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** encoding.h 24 Mar 2002 14:24:39 -0000 1.13 --- encoding.h 7 Jun 2002 15:36:47 -0000 1.14 *************** *** 88,92 **** offsetof(struct, field)) ! #define QUARTER(n) (extra_assert(((n)&3)==0), (n)/4) --- 88,92 ---- offsetof(struct, field)) ! #define QUARTER(n) (extra_assert(((n)&3)==0), (long)((n)/4)) *************** *** 225,229 **** _v = value; \ if (COMPACT_ENCODING && -128 <= _v && _v < 128) { \ ! code[2] = _v; \ code[0] = 0x83; \ code += 3; \ --- 225,229 ---- _v = value; \ if (COMPACT_ENCODING && -128 <= _v && _v < 128) { \ ! code[2] = (char) _v; \ code[0] = 0x83; \ code += 3; \ *************** *** 321,325 **** else*/ { \ INSTR_MODRM_FROM_RT(source, 0x83, 7<<3); /* CMP (source), imm8 */ \ ! *code++ = _value; \ } \ else { \ --- 321,325 ---- else*/ { \ INSTR_MODRM_FROM_RT(source, 0x83, 7<<3); /* CMP (source), imm8 */ \ ! *code++ = (char) _value; \ } \ else { \ *************** *** 346,350 **** } \ else \ ! *code++ = _value; \ } while (0) --- 346,350 ---- } \ else \ ! *code++ = (char) _value; \ } while (0) *************** *** 483,487 **** if (COMPACT_ENCODING && -128 <= (immed) && (immed) < 128) { \ code[0] = 0x6A; /* PUSH imm8 */ \ ! code[1] = (immed); \ code += 2; \ } \ --- 483,487 ---- if (COMPACT_ENCODING && -128 <= (immed) && (immed) < 128) { \ code[0] = 0x6A; /* PUSH imm8 */ \ ! code[1] = (char) (immed); \ code += 2; \ } \ *************** *** 562,566 **** if (COMPACT_ENCODING && -128 <= _value && _value < 128) { \ code[1] = 0x40 | (dst)<<3 | (rg1); \ ! code[2] = _value; \ code += 3; \ } \ --- 562,566 ---- if (COMPACT_ENCODING && -128 <= _value && _value < 128) { \ code[1] = 0x40 | (dst)<<3 | (rg1); \ ! code[2] = (char) _value; \ code += 3; \ } \ *************** *** 838,842 **** extra_assert(-128 <= _ofs && _ofs < 128); \ code[0] = 0x70 | (char)(condition); \ ! code[1] = _ofs; \ code += 2; \ } while (0) --- 838,842 ---- extra_assert(-128 <= _ofs && _ofs < 128); \ code[0] = 0x70 | (char)(condition); \ ! code[1] = (char) _ofs; \ code += 2; \ } while (0) Index: processor.c =================================================================== RCS file: /cvsroot/psyco/psyco/c/processor.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** processor.c 12 Apr 2002 14:07:06 -0000 1.13 --- processor.c 7 Jun 2002 15:36:47 -0000 1.14 *************** *** 320,324 **** #define READ_ARRAY_ITEM_1(rg, _v, offset, _byte) do { \ ! char _modrm; \ long _value = (offset); \ if (!is_compiletime(_v->source)) \ --- 320,324 ---- #define READ_ARRAY_ITEM_1(rg, _v, offset, _byte) do { \ ! code_t _modrm; \ long _value = (offset); \ if (!is_compiletime(_v->source)) \ *************** *** 347,351 **** code[1] = _modrm | ((rg)<<3); \ if (COMPACT_ENCODING && (_modrm & 0x40) != 0) { \ ! code[2] = _value; \ code += 3; \ } \ --- 347,351 ---- code[1] = _modrm | ((rg)<<3); \ if (COMPACT_ENCODING && (_modrm & 0x40) != 0) { \ ! code[2] = (char) _value; \ code += 3; \ } \ *************** *** 482,486 **** code[1] = modrm; if (COMPACT_ENCODING && (modrm & 0x40) != 0) { ! code[2] = value; code += 3; } --- 482,486 ---- code[1] = modrm; if (COMPACT_ENCODING && (modrm & 0x40) != 0) { ! code[2] = (char) value; code += 3; } *************** *** 780,784 **** { code[-2] = 0xEB; /* JMP rel8 */ ! code[-1] = offset; } else --- 780,784 ---- { code[-2] = 0xEB; /* JMP rel8 */ ! code[-1] = (char) offset; } else *************** *** 811,815 **** { code[-2] = 0x7F; /* JG rel8 */ ! code[-1] = offset; } else --- 811,815 ---- { code[-2] = 0x7F; /* JG rel8 */ ! code[-1] = (char) offset; } else *************** *** 953,957 **** DEFINEFN ! code_t* psyco_write_run_time_switch(fixed_switch_t* rts, code_t* code, char reg) { /* Write the code that does a 'switch' on the prepared 'values'. */ --- 953,957 ---- DEFINEFN ! code_t* psyco_write_run_time_switch(fixed_switch_t* rts, code_t* code, reg_t reg) { /* Write the code that does a 'switch' on the prepared 'values'. */ Index: processor.h =================================================================== RCS file: /cvsroot/psyco/psyco/c/processor.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** processor.h 24 Mar 2002 14:24:39 -0000 1.9 --- processor.h 7 Jun 2002 15:36:47 -0000 1.10 *************** *** 397,401 **** psyco_fix_switch_target(). */ EXTERNFN code_t* psyco_write_run_time_switch(fixed_switch_t* rts, ! code_t* code, char reg); /* Fix the target corresponding to the given case ('item' is a value --- 397,401 ---- psyco_fix_switch_target(). */ EXTERNFN code_t* psyco_write_run_time_switch(fixed_switch_t* rts, ! code_t* code, reg_t reg); /* Fix the target corresponding to the given case ('item' is a value Index: psyco.h =================================================================== RCS file: /cvsroot/psyco/psyco/c/psyco.h,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** psyco.h 9 Apr 2002 07:09:25 -0000 1.21 --- psyco.h 7 Jun 2002 15:36:47 -0000 1.22 *************** *** 200,204 **** ! typedef char code_t; typedef struct vinfo_s vinfo_t; /* defined in compiler.h */ --- 200,204 ---- ! typedef unsigned char code_t; typedef struct vinfo_s vinfo_t; /* defined in compiler.h */ Index: pycencoding.h =================================================================== RCS file: /cvsroot/psyco/psyco/c/pycencoding.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** pycencoding.h 18 Mar 2002 19:04:22 -0000 1.6 --- pycencoding.h 7 Jun 2002 15:36:48 -0000 1.7 *************** *** 75,81 **** #define INC_OB_REFCNT(rg) do { \ NEED_CC_REG(rg); \ - extra_assert(offsetof(PyObject, ob_refcnt) == 0); \ code[0] = 0xFF; /* INC [reg] */ \ ! if (EBP_IS_RESERVED || (rg) != REG_386_EBP) \ { \ extra_assert((rg) != REG_386_EBP); \ --- 75,81 ---- #define INC_OB_REFCNT(rg) do { \ NEED_CC_REG(rg); \ code[0] = 0xFF; /* INC [reg] */ \ ! if ((EBP_IS_RESERVED || (rg) != REG_386_EBP) && \ ! offsetof(PyObject, ob_refcnt) == 0) \ { \ extra_assert((rg) != REG_386_EBP); \ *************** *** 85,90 **** { \ code++; \ ! code[0] = 0x45; \ ! code[1] = 0; \ } \ code += 2; \ --- 85,91 ---- { \ code++; \ ! extra_assert(offsetof(PyObject, ob_refcnt) < 128);\ ! code[0] = 0x40 | (rg); \ ! code[1] = (char) offsetof(PyObject, ob_refcnt); \ } \ code += 2; \ *************** *** 92,128 **** /* Py_INCREF() for a compile-time-known 'pyobj' */ ! #define INC_KNOWN_OB_REFCNT(pyobj) do { \ ! NEED_CC(); \ ! code[0] = 0xFF; /* INC [address] */ \ ! code[1] = 0x05; \ ! *(int**)(code+2) = &(pyobj)->ob_refcnt; \ ! code += 6; \ } while (0) /* Py_DECREF() for a compile-time 'pyobj' assuming counter cannot reach zero */ ! #define DEC_KNOWN_OB_REFCNT_NZ(pyobj) do { \ ! NEED_CC(); \ ! code[0] = 0xFF; /* DEC [address] */ \ ! code[1] = (1<<3) | 0x05; \ ! *(int**)(code+2) = &(pyobj)->ob_refcnt; \ ! code += 6; \ } while (0) /* like DEC_OB_REFCNT() but assume the reference counter cannot reach zero */ ! #define DEC_OB_REFCNT_NZ(rg) do { \ ! NEED_CC_REG(rg); \ ! code[0] = 0xFF; /* DEC [reg] */ \ ! if (EBP_IS_RESERVED || (rg) != REG_386_EBP) \ ! { \ ! extra_assert((rg) != REG_386_EBP); \ ! code[1] = 0x08 | (rg); \ ! } \ ! else \ ! { \ ! code++; \ ! code[0] = 0x4D; \ ! code[1] = 0; \ ! } \ ! code += 2; \ } while (0) --- 93,131 ---- /* Py_INCREF() for a compile-time-known 'pyobj' */ ! #define INC_KNOWN_OB_REFCNT(pyobj) do { \ ! NEED_CC(); \ ! code[0] = 0xFF; /* INC [address] */ \ ! code[1] = 0x05; \ ! *(int**)(code+2) = &(pyobj)->ob_refcnt; \ ! code += 6; \ } while (0) /* Py_DECREF() for a compile-time 'pyobj' assuming counter cannot reach zero */ ! #define DEC_KNOWN_OB_REFCNT_NZ(pyobj) do { \ ! NEED_CC(); \ ! code[0] = 0xFF; /* DEC [address] */ \ ! code[1] = (1<<3) | 0x05; \ ! *(int**)(code+2) = &(pyobj)->ob_refcnt; \ ! code += 6; \ } while (0) /* like DEC_OB_REFCNT() but assume the reference counter cannot reach zero */ ! #define DEC_OB_REFCNT_NZ(rg) do { \ ! NEED_CC_REG(rg); \ ! code[0] = 0xFF; /* DEC [reg] */ \ ! if ((EBP_IS_RESERVED || (rg) != REG_386_EBP) && \ ! offsetof(PyObject, ob_refcnt) == 0) \ ! { \ ! extra_assert((rg) != REG_386_EBP); \ ! code[1] = 0x08 | (rg); \ ! } \ ! else \ ! { \ ! code++; \ ! extra_assert(offsetof(PyObject, ob_refcnt) < 128);\ ! code[0] = 0x48 | (rg); \ ! code[1] = (char) offsetof(PyObject, ob_refcnt); \ ! } \ ! code += 2; \ } while (0) *************** *** 130,134 **** #define DEC_OB_REFCNT(rg) do { \ DEC_OB_REFCNT_NZ(rg); \ - extra_assert(offsetof(PyObject, ob_refcnt) == 0); \ extra_assert(offsetof(PyObject, ob_type) < 128); \ extra_assert(offsetof(PyTypeObject, tp_dealloc) < 128); \ --- 133,136 ---- *************** *** 181,185 **** #define DEC_OB_REFCNT_T(rg, type) do { \ DEC_OB_REFCNT_NZ(rg); \ - extra_assert(offsetof(PyObject, ob_refcnt) == 0); \ CODE_FOUR_BYTES(code, \ 0x75, /* JNZ rel8 */ \ --- 183,186 ---- |