94 lines
6.0 KiB
C
94 lines
6.0 KiB
C
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│
|
|
│vi: set net ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi│
|
|
╞══════════════════════════════════════════════════════════════════════════════╡
|
|
│ Copyright 2018 Intel Corporation │
|
|
│ Copyright 2019 Justine Alexandra Roberts Tunney │
|
|
│ │
|
|
│ Licensed under the Apache License, Version 2.0 (the "License"); │
|
|
│ you may not use this file except in compliance with the License. │
|
|
│ You may obtain a copy of the License at │
|
|
│ │
|
|
│ http://www.apache.org/licenses/LICENSE-2.0 │
|
|
│ │
|
|
│ Unless required by applicable law or agreed to in writing, software │
|
|
│ distributed under the License is distributed on an "AS IS" BASIS, │
|
|
│ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. │
|
|
│ See the License for the specific language governing permissions and │
|
|
│ limitations under the License. │
|
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
|
#include "third_party/xed/x86.h"
|
|
|
|
asm(".ident\t\"\\n\\n\
|
|
Xed (Apache 2.0)\\n\
|
|
Copyright 2018 Intel Corporation\\n\
|
|
Copyright 2019 Justine Alexandra Roberts Tunney\\n\
|
|
Modifications: Trimmed down to 3kb [2019-03-22 jart]\"");
|
|
asm(".include \"libc/disclaimer.inc\"");
|
|
|
|
/**
|
|
* Mapping of enum XedChip -> bitset<enum XedIsaSet>.
|
|
*
|
|
* See related APIs, e.g. xed_isa_set_is_valid_for_chip().
|
|
*
|
|
* This information can be reproduced by building Xed and running the C
|
|
* preprocessor on xed-chip-features-table.c (see xed-chips.txt) which
|
|
* turns several thousand lines of non-evolving code into fifty. For
|
|
* example, 0x2800000ul was calculated as: 1UL<<(XED_ISA_SET_I86-64) |
|
|
* 1UL<<(XED_ISA_SET_LAHF-64).
|
|
*/
|
|
const uint64_t xed_chip_features[XED_CHIP_LAST][3] /* clang-format off */
|
|
_Section(".text") = {
|
|
{0, 0, 0, },
|
|
{0, 0x02800000, 0, }, /*I86*/
|
|
{0, 0x02800000, 0x02000}, /*I86FP*/
|
|
{0, 0x02820000, 0, }, /*I186*/
|
|
{0, 0x02820000, 0x02000}, /*I186FP*/
|
|
{0, 0x028a0000, 0x02000}, /*I286REAL*/
|
|
{0, 0x028e0000, 0x02000}, /*I286*/
|
|
{0, 0x028e0000, 0x02000}, /*I2186FP*/
|
|
{0, 0x028a0000, 0x02000}, /*I386REAL*/
|
|
{0, 0x029e0000, 0x02000}, /*I386*/
|
|
{0, 0x029e0000, 0x02000}, /*I386FP*/
|
|
{0, 0x02ca0000, 0x02000}, /*I486REAL*/
|
|
{0, 0x02fe0000, 0x02000}, /*I486*/
|
|
{0, 0x2002ca0000, 0x02000}, /*PENTIUMREAL*/
|
|
{0, 0x2002fe0000, 0x02000}, /*PENTIUM*/
|
|
{0, 0x2002fe0000, 0x02000}, /*QUARK*/
|
|
{0, 0x402002ca0000, 0x02000}, /*PEN..MMXREAL*/
|
|
{0, 0x403002fe0000, 0x02000}, /*PENTIUMMMX*/
|
|
{0, 0x402002ca0000, 0x02000}, /*ALLREAL*/
|
|
{0, 0x492002fe0c80, 0x02000}, /*PENTIUMPRO*/
|
|
{0, 0x493002fe4c80, 0x02000}, /*PENTIUM2*/
|
|
{0, 0x200493002fe4c80, 0x02006}, /*PENTIUM3*/
|
|
{0, 0xe00493202fe4c90, 0x02006}, /*PENTIUM4*/
|
|
{0, 0x3e00493216fecd90, 0x02006}, /*P4PRESCOTT*/
|
|
{0, 0x3e00493214fecd90, 0x02000}, /*P4PR..NOLAHF*/
|
|
{0, 0x3e00493216fecd90, 0x02406}, /*P4PRESC..VTX*/
|
|
{0, 0x3f00493216fecd90, 0x0241e}, /*CORE2*/
|
|
{0, 0x7f00493216fecd90, 0x0241e}, /*PENRYN*/
|
|
{0, 0x7f00493216fecd90, 0x0a41e}, /*PENRYN_E*/
|
|
{0, 0xff0249b216fecd90, 0x0241e}, /*NEHALEM*/
|
|
{8, 0xff0249b616fecd90, 0x0241e}, /*WESTMERE*/
|
|
{0, 0x3e00493256fecd90, 0x0241e}, /*BONNELL*/
|
|
{0, 0x3e00493256fecd90, 0x0241e}, /*SALTWELL*/
|
|
{8, 0xff02cbb656fecd90, 0x0241e}, /*SILVERMONT*/
|
|
{18, 0x00000a0020002040, 0x04061}, /*AMD*/
|
|
{8, 0xffc7cbb756fecd98, 0x7a41e}, /*GOLDMONT*/
|
|
{8, 0xffd7fbb756fecd98, 0x7a41e}, /*GOLDMONTPLUS*/
|
|
{8, 0xfff7fbb7d6ffcdbc, 0x7ac1e}, /*TREMONT*/
|
|
{0x2000000000000028, 0xff0249b616fecd90, 0x2a41e}, /*SANDYBRIDGE*/
|
|
{0x2000000000000028, 0xff06c9b616fecf90, 0x2a41e}, /*IVYBRIDGE*/
|
|
{0xa0000000000000e8, 0xff0ec9b65ffedf91, 0x2a51e}, /*HASWELL*/
|
|
{0xa0000000000000ec, 0xff8fcbb65ffedf91, 0x2a51e}, /*BROADWELL*/
|
|
{0xa0000000000000ec, 0xff9fcbb75ffedf99, 0x7a51e}, /*SKYLAKE*/
|
|
{0xa00000003f3fffec, 0xff9fcbf75ffedfb9, 0x7a51e}, /*SKYL..SERVER*/
|
|
{0xa07000003f3fffec, 0xff9fcbf75ffedfb9, 0x7a51e}, /*CASCADE_LAKE*/
|
|
{0xa00000007ac080ec, 0xff07cdb65efedf91, 0x2a41e}, /*KNL*/
|
|
{0xb0000003fac080ec, 0xff07cdb65efedf91, 0x2a51e}, /*KNM*/
|
|
{0xa00e07003f3fffec, 0xffdfcbf75ffedf99, 0x7a51e}, /*CANNONLAKE*/
|
|
{0xfffffffc3f3fffec, 0xffdfebf75fffdfb9, 0x7a79e}, /*ICELAKE*/
|
|
{0xfffffffc3f3fffec, 0xffffebff5fffdfb9, 0x7b79e}, /*ICEL..SERVER*/
|
|
{0xfffffffc3f3fffec, 0xffdffbf75fffdfbb, 0x7a79e}, /*FUTURE*/
|
|
{0xfffffffffffffffe, 0xffffffffffffffff, 0x7ffff} /*ALL*/
|
|
} /* clang-format on */;
|