pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:4961:    if (!params[1]) {    params[1] = buffers[1];    buffers[1][0] = 0;    }    if (op->flags & (OP_8|OP_S8)) {    sprintf(buffers[1] + strlen(buffers[1]), "$%+d", ((signed char *)pc)[pos++]);    } else {    sprintf(buffers[1] + strlen(buffers[1]), "$");    pos += amd64_readint32(pc + pos, buffers[1] + strlen(buffers[1]));    } +  } else if (op->flags & OP_PCREL) { +  INT32 val; +  if (!params[1]) { +  params[1] = buffers[1]; +  buffers[1][0] = 0;    } -  +  if (op->flags & (OP_8|OP_S8)) { +  val = ((signed char *)pc)[pos++]; +  } else { +  val = ((INT32 *)(pc + pos))[0]; +  pos += 4; +  } +  sprintf(buffers[1] + strlen(buffers[1]), "%p", pc + (pos + val)); +  }    -  +  if (op->flags & OP_B_RM) { +  /* Swap the two parameters. */ +  const char *tmp = params[0]; +  params[0] = params[1]; +  params[1] = tmp; +  } +     if (opcode) {    fprintf(stderr, "%s", opcode);       if (params[0]) {    fprintf(stderr, " %s", params[0]);    if (params[1]) {    fprintf(stderr, ",");    }    }