summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2012-09-03 15:23:59 +0000
committerkettenis <kettenis@openbsd.org>2012-09-03 15:23:59 +0000
commit7e0148a2b860edbbe09aa92c87a51f115ea26224 (patch)
treeb58012f726e394827629c87505bf59fa25731546
parentadd Intel 7 series kt (amt serial over lan) (diff)
downloadwireguard-openbsd-7e0148a2b860edbbe09aa92c87a51f115ea26224.tar.xz
wireguard-openbsd-7e0148a2b860edbbe09aa92c87a51f115ea26224.zip
Teach as(1) about rdrand on i386/amd64.
ok jsg@
-rw-r--r--gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h3
-rw-r--r--gnu/usr.bin/binutils-2.17/include/opcode/i386.h3
-rw-r--r--gnu/usr.bin/binutils/gas/config/tc-i386.h3
-rw-r--r--gnu/usr.bin/binutils/include/opcode/i386.h3
4 files changed, 10 insertions, 2 deletions
diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h b/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h
index a54724e7ba5..53f2918eb1b 100644
--- a/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h
+++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h
@@ -187,6 +187,7 @@ typedef struct
#define CpuMNI 0x200000 /* Merom New Instructions required */
#define CpuAES 0x400000 /* Intel AES extensions required */
#define CpuPCLMUL 0x800000 /* Intel Carry-less Multiplication extensions */
+#define CpuRdRnd 0x1000000 /* Intel Random Number Generator extensions */
/* These flags are set by gas depending on the flag_code. */
#define Cpu64 0x4000000 /* 64bit support required */
@@ -196,7 +197,7 @@ typedef struct
#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \
|CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI|CpuVMX \
|Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock|CpuSVME|CpuMNI|CpuAES \
- |CpuPCLMUL)
+ |CpuPCLMUL|CpuRdRnd)
/* the bits in opcode_modifier are used to generate the final opcode from
the base_opcode. These bits also are used to detect alternate forms of
diff --git a/gnu/usr.bin/binutils-2.17/include/opcode/i386.h b/gnu/usr.bin/binutils-2.17/include/opcode/i386.h
index 27c34599c8c..64252154c40 100644
--- a/gnu/usr.bin/binutils-2.17/include/opcode/i386.h
+++ b/gnu/usr.bin/binutils-2.17/include/opcode/i386.h
@@ -1501,6 +1501,9 @@ static const template i386_optab[] =
{"pclmullqhqdq", 2, 0x660f3a44, 0x10, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } },
{"pclmulhqhqdq", 2, 0x660f3a44, 0x11, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } },
+/* Intel Random Number Generator extensions */
+{"rdrand", 1, 0x0fc7, 0x6, CpuRdRnd, Modrm|NoSuf, { Reg16|Reg32|Reg64 } },
+
/* sentinel */
{NULL, 0, 0, 0, 0, 0, { 0, 0, 0} }
};
diff --git a/gnu/usr.bin/binutils/gas/config/tc-i386.h b/gnu/usr.bin/binutils/gas/config/tc-i386.h
index d71dc20bb63..3f78ffde4a0 100644
--- a/gnu/usr.bin/binutils/gas/config/tc-i386.h
+++ b/gnu/usr.bin/binutils/gas/config/tc-i386.h
@@ -198,13 +198,14 @@ typedef struct
#define CpuSSSE3 0x20000 /* Supplementary SSE3 required */
#define CpuAES 0x40000 /* Intel AES extensions required */
#define CpuPCLMUL 0x80000 /* Intel Carry-less Multiplication extensions */
+#define CpuRdRnd 0x100000 /* Intel Random Number Generator extensions */
/* These flags are set by gas depending on the flag_code. */
#define Cpu64 0x4000000 /* 64bit support required */
#define CpuNo64 0x8000000 /* Not supported in the 64bit mode */
/* The default value for unknown CPUs - enable all features to avoid problems. */
-#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuSledgehammer|CpuMMX|CpuSSE|CpuSSE2|CpuPNI|Cpu3dnow|CpuK6|CpuAthlon|CpuPadLock|CpuSSSE3|CpuAES|CpuPCLMUL)
+#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuSledgehammer|CpuMMX|CpuSSE|CpuSSE2|CpuPNI|Cpu3dnow|CpuK6|CpuAthlon|CpuPadLock|CpuSSSE3|CpuAES|CpuPCLMUL|CpuRdRnd)
/* the bits in opcode_modifier are used to generate the final opcode from
the base_opcode. These bits also are used to detect alternate forms of
diff --git a/gnu/usr.bin/binutils/include/opcode/i386.h b/gnu/usr.bin/binutils/include/opcode/i386.h
index 02365526c8e..a9c1ec93194 100644
--- a/gnu/usr.bin/binutils/include/opcode/i386.h
+++ b/gnu/usr.bin/binutils/include/opcode/i386.h
@@ -1402,6 +1402,9 @@ static const template i386_optab[] = {
{"pclmullqhqdq", 2, 0x660f3a44, 0x10, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } },
{"pclmulhqhqdq", 2, 0x660f3a44, 0x11, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } },
+/* Intel Random Number Generator extensions */
+{"rdrand", 1, 0x0fc7, 0x6, CpuRdRnd, Modrm|NoSuf, { Reg16|Reg32|Reg64 } },
+
/* sentinel */
{NULL, 0, 0, 0, 0, 0, { 0, 0, 0} }
};