[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#464962: Do AMD K7 family CPUs support long noops?



Graham wrote:
Hello,

I am wondering whether anyone has looked into which AMD CPUs support
these instructions. I would think that installing a 486 kernel on an
AthlonXP, for example, would be quite sub-optimal.

i.e. can you safely enable X86_P6_NOP for other CPUs, such as AMD
K7/K8, VIA C3/C7, or Efficeon? If not, would it be more sensible to
avoid using these instructions?

It appears that at least some VIA C3 CPUs do not support these opcodes:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=463606#45


Attached is a C program which tests this.
#include <stdio.h>
#include <signal.h>
#include <setjmp.h>

static sigjmp_buf out;

void sigill(int signal)
{
  siglongjmp(out, 1);
}

int main(void)
{
  int died;

  signal(SIGILL, sigill);

  died = sigsetjmp(out, 1);

  if (!died)
    asm volatile("nopl 0(%eax)");

  printf("Long NOPs supported: %s\n", died ? "no" : "yes");
  return died;
}

Reply to: