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:
parent
a7d61044b2
commit
373ff435a8
4 changed files with 25 additions and 8 deletions
|
@ -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
|
||||||
|
|
|
@ -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} },
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue