Branch: Tag:

2003-11-25

2003-11-25 22:13:58 by Martin Stjernholm <mast@lysator.liu.se>

Fixed thread yield bug for tight loops when OPCODE_INLINE_BRANCH is used.
Note: The ppc backend needs fixing too.

Rev: src/code/README.txt:1.23
Rev: src/code/ia32.c:1.37
Rev: src/code/ia32.h:1.23
Rev: src/interpret.c:1.340
Rev: src/interpret.h:1.144
Rev: src/peep.c:1.96

2:   || 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: peep.c,v 1.95 2003/11/24 17:28:45 grubba Exp $ + || $Id: peep.c,v 1.96 2003/11/25 22:13:58 mast Exp $   */      #include "global.h"
26:   #include "interpret.h"   #include "pikecode.h"    - RCSID("$Id: peep.c,v 1.95 2003/11/24 17:28:45 grubba Exp $"); + RCSID("$Id: peep.c,v 1.96 2003/11/25 22:13:58 mast Exp $");      static void asm_opt(void);   
507:    {    case I_ISPTRJUMP:   #ifdef INS_F_JUMP -  tmp=INS_F_JUMP(c->opcode); +  tmp=INS_F_JUMP(c->opcode, (labels[c->arg] != -1));    if(tmp != -1)    {    UPDATE_F_JUMP(tmp, jumps[c->arg]);
529:       case I_ISPTRJUMPARGS:   #ifdef INS_F_JUMP_WITH_TWO_ARGS -  tmp = INS_F_JUMP_WITH_TWO_ARGS(c->opcode, c->arg, c->arg2); +  tmp = INS_F_JUMP_WITH_TWO_ARGS(c->opcode, c->arg, c->arg2, +  (labels[c->arg] != -1));    if(tmp != -1)    {   #ifdef ADJUST_PIKE_PC
565:       case I_ISPTRJUMPARG:   #ifdef INS_F_JUMP_WITH_ARG -  tmp = INS_F_JUMP_WITH_ARG(c->opcode, c->arg); +  tmp = INS_F_JUMP_WITH_ARG(c->opcode, c->arg, (labels[c->arg] != -1));    if(tmp != -1)    {   #ifdef ADJUST_PIKE_PC