X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Futils%2Fmono-hwcap-s390x.h;h=7a4522f8db9907a0e18a239cf6ef5cffdf86b0f4;hb=ac32aa114ab7cca67498ae8da30188bbbd8923f0;hp=313aca8bcb432fbd174cfd6deaaab76a04ef1514;hpb=9e91c36e1cf072da2fea19b6252fad485f95d78d;p=mono.git diff --git a/mono/utils/mono-hwcap-s390x.h b/mono/utils/mono-hwcap-s390x.h index 313aca8bcb4..7a4522f8db9 100644 --- a/mono/utils/mono-hwcap-s390x.h +++ b/mono/utils/mono-hwcap-s390x.h @@ -3,84 +3,99 @@ #include "mono/utils/mono-hwcap.h" -typedef struct -{ - char n3:1; // N3 instructions present - char zArch:1; // z/Architecture mode installed - char zAct:1; // z/Architecture mode active - char date:1; // DAT enhancement facility - char idte1:1; // IDTE present (PST) - char idte2:1; // IDTE present (REG) - char asnlx:1; // ASN and LX reuse facility - char stfle:1; // STFLE installed - char zDATe:1; // Enhanced DAT in z mode - char srstat:1; // Sense running status facility - char cSSKE:1; // Conditional SSKE facility - char topo:1; // Configuration topology facility - char rv1:1; // Reserved - char xTrans2:1; // Extended translation facility 2 - char msgSec:1; // Message security facility - char longDsp:1; // Long displacement facility - char hiPerfLD:1; // High performance long displacement facility - char hfpMAS:1; // HFP multiply-and-add/subtrace facility - char xImm:1; // Extended immediate facility - char xTrans3:1; // Extended translation facility 3 - char hfpUnX:1; // HFP unnormalized extension facility - char etf2:1; // ETF2-enhancement facility - char stckf:1; // Store-clock-fast facility - char parse:1; // Parsing enhancement facility - char mvcos:1; // MVCOS facility - char todSteer:1; // TOD-clock steering facility - char etf3:1; // ETF3-enhancement facility - char xCPUtm:1; // Extract CPU time facility - char csst:1; // Compare-swap-and-store facility - char csst2:1; // Compare-swap-and-store facility 2 - char giX:1; // General instructions extension facility - char exX:1; // Execute extensions facility - char em:1; // Enhanced monitor - char rv2:1; // Reserved - char spp:1; // Set program parameters - char fps:1; // Floating point support enhancement - char dfp:1; // Decimal floating point facility - char hiDFP:1; // High Performance DFP facility - char pfpo:1; // PFPO instruction facility - char doclpkia:1; // DO/Fast BCR/CL/PK/IA - char rv3:1; // Reserved - char cmpsce:1; // CMPSC enhancement - char dfpzc:1; // DFP zoned-conversion - char eh:1; // Execution hint - char lt:1; // Load and trap - char mi:1; // Miscellaneous instruction enhancements - char pa:1; // Processor assist - char cx:1; // Constrained transactional execution - char ltlb:1; // Local TLB clearing - char ia2:1; // Interlocked access 2 - char rv4:1; // Reserved; - char rv5:1; // Reserved; - char rv6:1; // Reserved; - char rv7:1; // Reserved; - char rv8:1; // Reserved; - char rv9:1; // Reserved; - char rva:1; // Reserved; - char rvb:1; // Reserved; - char rvc:1; // Reserved; - char rvd:1; // Reserved; - char rve:1; // Reserved; - char rvf:1; // Reserved; - char rvg:1; // Reserved; - char rb:1; // RRB multiple - char cmc:1; // CPU measurement counter - char cms:1; // CPU measurement sampling - char rvh:4; // Reserved - char tx:1; // Transactional execution - char rvi:1; // Reserved - char axsi:1; // Access exception/store indication - char m3:1; // Message security extension 3 - char m4:1; // Message security extension 4 - char ed2:1; // Enhanced DAT 2 - int64_t end[0]; // End on a double word -} __attribute__((aligned(8))) facilityList_t; - +typedef struct __FACLIST__ { + uint8_t n3:1; // 000 - N3 instructions + uint8_t zi:1; // 001 - z/Arch installed + uint8_t za:1; // 002 - z/Arch active + uint8_t date:1; // 003 - DAT-enhancement + uint8_t idtes:1; // 004 - IDTE-segment tables + uint8_t idter:1; // 005 - IDTE-region tables + uint8_t asnlx:1; // 006 - ASN-LX reuse + uint8_t stfle:1; // 007 - STFLE + uint8_t edat1:1; // 008 - EDAT 1 + uint8_t srs:1; // 009 - Sense-Running-Status + uint8_t csske:1; // 010 - Conditional SSKE + uint8_t ctf:1; // 011 - Configuration-topology + uint8_t ibm01:1; // 012 - Assigned to IBM + uint8_t ipter:1; // 013 - IPTE-range + uint8_t nqks:1; // 014 - Nonquiescing key-setting + uint8_t ibm02:1; // 015 - Assigned to IBM + uint8_t etf2:1; // 016 - Extended translation 2 + uint8_t msa:1; // 017 - Message security assist 1 + uint8_t ld:1; // 018 - Long displacement + uint8_t ldh:1; // 019 - Long displacement high perf + uint8_t mas:1; // 020 - HFP multiply-add-subtract + uint8_t eif:1; // 021 - Extended immediate + uint8_t etf3:1; // 022 - Extended translation 3 + uint8_t hux:1; // 023 - HFP unnormalized extension + uint8_t etf2e:1; // 024 - Extended translation enhanced 2 + uint8_t stckf:1; // 025 - Store clock fast + uint8_t pe:1; // 026 - Parsing enhancement + uint8_t mvcos:1; // 027 - Move with optional specs + uint8_t tods:1; // 028 - TOD steering + uint8_t x000:1; // 029 - Undefined + uint8_t etf3e:1; // 030 - ETF3 enhancement + uint8_t ecput:1; // 031 - Extract CPU time + uint8_t csst:1; // 032 - Compare swap and store + uint8_t csst2:1; // 033 - Compare swap and store 2 + uint8_t gie:1; // 034 - General instructions extension + uint8_t ee:1; // 035 - Execute extensions + uint8_t em:1; // 036 - Enhanced monitor + uint8_t fpe:1; // 037 - Floating point extension + uint8_t x001:1; // 038 - Undefined + uint8_t ibm03:1; // 039 - Assigned to IBM + uint8_t spp:1; // 040 - Set program parameters + uint8_t fpse:1; // 041 - FP support enhancement + uint8_t dfp:1; // 042 - DFP + uint8_t dfph:1; // 043 - DFP high performance + uint8_t pfpo:1; // 044 - PFPO instruction + uint8_t multi:1; // 045 - Multiple inc load/store on CC 1 + uint8_t ibm04:1; // 046 - Assigned to IBM + uint8_t cmpsce:1; // 047 - CMPSC enhancement + uint8_t dfpzc:1; // 048 - DFP zoned conversion + uint8_t misc:1; // 049 - Multiple inc load and trap + uint8_t ctx:1; // 050 - Constrained transactional-execution + uint8_t ltlb:1; // 051 - Local TLB clearing + uint8_t ia:1; // 052 - Interlocked access + uint8_t lsoc2:1; // 053 - Load/store on CC 2 + uint8_t x002:1; // 054 - Undefined + uint8_t ibm05:1; // 055 - Assigned to IBM + uint8_t x003:1; // 056 - Undefined + uint8_t msa5:1; // 057 - Message security assist 5 + uint8_t x004:1; // 058 - Undefined + uint8_t x005:1; // 059 - Undefined + uint8_t x006:1; // 060 - Undefined + uint8_t x007:1; // 061 - Undefined + uint8_t ibm06:1; // 062 - Assigned to IBM + uint8_t x008:1; // 063 - Undefined + uint8_t x009:1; // 064 - Undefined + uint8_t ibm07:1; // 065 - Assigned to IBM + uint8_t rrbm:1; // 066 - Reset reference bits multiple + uint8_t cmc:1; // 067 - CPU measurement counter + uint8_t cms:1; // 068 - CPU Measurement sampling + uint8_t ibm08:1; // 069 - Assigned to IBM + uint8_t ibm09:1; // 070 - Assigned to IBM + uint8_t ibm10:1; // 071 - Assigned to IBM + uint8_t ibm11:1; // 072 - Assigned to IBM + uint8_t txe:1; // 073 - Transactional execution + uint8_t sthy:1; // 074 - Store hypervisor information + uint8_t aefsi:1; // 075 - Access exception fetch/store indication + uint8_t msa3:1; // 076 - Message security assist 3 + uint8_t msa4:1; // 077 - Message security assist 4 + uint8_t edat2:1; // 078 - Enhanced DAT 2 + uint8_t x010:1; // 079 - Undefined + uint8_t dfppc:1; // 080 - DFP packed conversion + uint8_t x011:7; // 081-87 - Undefined + uint8_t x012[5]; // 088-127 - Undefined + uint8_t ibm12:1; // 128 - Assigned to IBM + uint8_t vec:1; // 129 - Vector facility + uint8_t x013:6; // 130-135 - Undefined + uint8_t x014:6; // 136-141 - Undefined + uint8_t sccm:1; // 142 - Store CPU counter multiple + uint8_t ibm13:1; // 143 - Assigned to IBM + uint8_t x015[14]; // 144-256 Undefined +} __attribute__ ((packed)) __attribute__ ((aligned(8))) facilityList_t; + extern facilityList_t facs; #endif /* __MONO_UTILS_HWCAP_S390X_H__ */