include/opcode/

2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* i386.h (i386_optab): Add rdtscp.

opcodes/
2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
	easier future additions.
This commit is contained in:
Jan Beulich 2005-04-01 16:03:40 +00:00
parent a7d61044b2
commit 373ff435a8
4 changed files with 25 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2005-04-01 Jan Beulich <jbeulich@novell.com>
* i386.h (i386_optab): Add rdtscp.
2005-03-29 H.J. Lu <hongjiu.lu@intel.com> 2005-03-29 H.J. Lu <hongjiu.lu@intel.com>
* i386.h (i386_optab): Don't allow the `l' suffix for moving * i386.h (i386_optab): Don't allow the `l' suffix for moving

View File

@ -1375,6 +1375,7 @@ static const template i386_optab[] =
{"syscall", 0, 0x0f05, X, CpuK6, NoSuf, { 0, 0, 0} }, {"syscall", 0, 0x0f05, X, CpuK6, NoSuf, { 0, 0, 0} },
{"sysret", 0, 0x0f07, X, CpuK6, lq_Suf|DefaultSize, { 0, 0, 0} }, {"sysret", 0, 0x0f07, X, CpuK6, lq_Suf|DefaultSize, { 0, 0, 0} },
{"swapgs", 0, 0x0f01, 0xf8, Cpu64, NoSuf|ImmExt, { 0, 0, 0} }, {"swapgs", 0, 0x0f01, 0xf8, Cpu64, NoSuf|ImmExt, { 0, 0, 0} },
{"rdtscp", 0, 0x0f01, 0xf9, CpuSledgehammer,NoSuf|ImmExt, { 0, 0, 0} },
/* VIA PadLock extensions. */ /* VIA PadLock extensions. */
{"xstorerng", 0, 0x000fa7c0, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} }, {"xstorerng", 0, 0x000fa7c0, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },

View File

@ -1,3 +1,8 @@
2005-04-01 Jan Beulich <jbeulich@novell.com>
* i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
easier future additions.
2005-03-31 Jerome Guitton <guitton@gnat.com> 2005-03-31 Jerome Guitton <guitton@gnat.com>
* configure.in: Check for basename. * configure.in: Check for basename.

View File

@ -4394,16 +4394,23 @@ PNI_Fixup (int extrachar ATTRIBUTE_UNUSED, int sizeflag)
static void static void
INVLPG_Fixup (int bytemode, int sizeflag) INVLPG_Fixup (int bytemode, int sizeflag)
{ {
if (*codep == 0xf8) const char *alt;
{
char *p = obuf + strlen (obuf);
/* Override "invlpg". */ switch (*codep)
strcpy (p - 6, "swapgs"); {
codep++; case 0xf8:
alt = "swapgs";
break;
case 0xf9:
alt = "rdtscp";
break;
default:
OP_E (bytemode, sizeflag);
return;
} }
else /* Override "invlpg". */
OP_E (bytemode, sizeflag); strcpy (obuf + strlen (obuf) - 6, alt);
codep++;
} }
static void static void