summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2012-07-04 16:47:39 +0000
committerjhb <jhb@FreeBSD.org>2012-07-04 16:47:39 +0000
commit850f973fef04e43525ae0c511dd68c04d5d1298a (patch)
tree20886941e98e8567a2b4f462565c257d22e040a9 /sys/amd64
parent58344b5c4dfb11f345211ed6e4b87ae323576fb2 (diff)
downloadFreeBSD-src-850f973fef04e43525ae0c511dd68c04d5d1298a.zip
FreeBSD-src-850f973fef04e43525ae0c511dd68c04d5d1298a.tar.gz
Decode the 'xsave', 'xrstor', 'xsaveopt', 'xgetbv', 'xsetbv', and
'rdtscp' instructions. MFC after: 1 month
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/db_disasm.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/sys/amd64/amd64/db_disasm.c b/sys/amd64/amd64/db_disasm.c
index a6dbf69..c525f8d 100644
--- a/sys/amd64/amd64/db_disasm.c
+++ b/sys/amd64/amd64/db_disasm.c
@@ -169,9 +169,9 @@ static const char * const db_Grp15[] = {
"fxrstor",
"ldmxcsr",
"stmxcsr",
- "",
- "",
- "",
+ "xsave",
+ "xrstor",
+ "xsaveopt",
"clflush"
};
@@ -1279,11 +1279,26 @@ db_disasm(loc, altfmt)
i_size = NONE;
i_mode = 0;
break;
+ case 0xd0:
+ i_name = "xgetbv";
+ i_size = NONE;
+ i_mode = 0;
+ break;
+ case 0xd1:
+ i_name = "xsetbv";
+ i_size = NONE;
+ i_mode = 0;
+ break;
case 0xf8:
i_name = "swapgs";
i_size = NONE;
i_mode = 0;
break;
+ case 0xf9:
+ i_name = "rdtscp";
+ i_size = NONE;
+ i_mode = 0;
+ break;
}
}
if (ip->i_extra == db_Grp15 && f_mod(rex, regmodrm) == 3) {
OpenPOWER on IntegriCloud