brintos

brintos / llvm-project-archived public Read only

0
0
Text · 22.5 KiB · bfcecfe Raw
363 lines · plain
1class Architecture<string fname, string aname, list<SubtargetFeature> features>2  : SubtargetFeature<fname, "ARMArch", aname,3                     !strconcat(aname, " architecture"), features>;4 5//===----------------------------------------------------------------------===//6// ARM architectures7//8 9def ARMv4     : Architecture<"armv4",     "ARMv4",    []>;10 11def ARMv4t    : Architecture<"armv4t",    "ARMv4t",   [HasV4TOps]>;12 13def ARMv5t    : Architecture<"armv5t",    "ARMv5t",   [HasV5TOps]>;14 15def ARMv5te   : Architecture<"armv5te",   "ARMv5te",  [HasV5TEOps]>;16 17def ARMv5tej  : Architecture<"armv5tej",  "ARMv5tej", [HasV5TEOps]>;18 19def ARMv6     : Architecture<"armv6",     "ARMv6",    [HasV6Ops,20                                                       FeatureDSP]>;21 22def ARMv6t2   : Architecture<"armv6t2",   "ARMv6t2",  [HasV6T2Ops,23                                                       FeatureDSP]>;24 25def ARMv6k    : Architecture<"armv6k",    "ARMv6k",   [HasV6KOps]>;26 27def ARMv6kz   : Architecture<"armv6kz",   "ARMv6kz",  [HasV6KOps,28                                                       FeatureTrustZone]>;29 30def ARMv6m    : Architecture<"armv6-m",   "ARMv6m",   [HasV6MOps,31                                                       FeatureNoARM,32                                                       ModeThumb,33                                                       FeatureDB,34                                                       FeatureMClass,35                                                       FeatureStrictAlign]>;36 37def ARMv6sm   : Architecture<"armv6s-m",  "ARMv6sm",  [HasV6MOps,38                                                       FeatureNoARM,39                                                       ModeThumb,40                                                       FeatureDB,41                                                       FeatureMClass,42                                                       FeatureStrictAlign]>;43 44def ARMv7a    : Architecture<"armv7-a",   "ARMv7a",   [HasV7Ops,45                                                       FeatureNEON,46                                                       FeatureDB,47                                                       FeatureDSP,48                                                       FeatureAClass,49                                                       FeaturePerfMon]>;50 51def ARMv7ve   : Architecture<"armv7ve",   "ARMv7ve",  [HasV7Ops,52                                                       FeatureNEON,53                                                       FeatureDB,54                                                       FeatureDSP,55                                                       FeatureTrustZone,56                                                       FeatureMP,57                                                       FeatureVirtualization,58                                                       FeatureAClass,59                                                       FeaturePerfMon]>;60 61def ARMv7r    : Architecture<"armv7-r",   "ARMv7r",   [HasV7Ops,62                                                       FeatureDB,63                                                       FeatureDSP,64                                                       FeatureHWDivThumb,65                                                       FeatureRClass,66                                                       FeaturePerfMon]>;67 68def ARMv7m    : Architecture<"armv7-m",   "ARMv7m",   [HasV7Ops,69                                                       FeatureThumb2,70                                                       FeatureNoARM,71                                                       ModeThumb,72                                                       FeatureDB,73                                                       FeatureHWDivThumb,74                                                       FeatureMClass]>;75 76def ARMv7em   : Architecture<"armv7e-m",  "ARMv7em",  [HasV7Ops,77                                                       FeatureThumb2,78                                                       FeatureNoARM,79                                                       ModeThumb,80                                                       FeatureDB,81                                                       FeatureHWDivThumb,82                                                       FeatureMClass,83                                                       FeatureDSP]>;84 85def ARMv8a    : Architecture<"armv8-a",   "ARMv8a",   [HasV8Ops,86                                                       FeatureAClass,87                                                       FeatureDB,88                                                       FeatureFPARMv8,89                                                       FeatureNEON,90                                                       FeatureDSP,91                                                       FeatureTrustZone,92                                                       FeatureMP,93                                                       FeatureVirtualization,94                                                       FeatureCrypto,95                                                       FeatureCRC]>;96 97def ARMv81a   : Architecture<"armv8.1-a", "ARMv81a",  [HasV8_1aOps,98                                                       FeatureAClass,99                                                       FeatureDB,100                                                       FeatureFPARMv8,101                                                       FeatureNEON,102                                                       FeatureDSP,103                                                       FeatureTrustZone,104                                                       FeatureMP,105                                                       FeatureVirtualization,106                                                       FeatureCrypto,107                                                       FeatureCRC]>;108 109def ARMv82a   : Architecture<"armv8.2-a", "ARMv82a",  [HasV8_2aOps,110                                                       FeatureAClass,111                                                       FeatureDB,112                                                       FeatureFPARMv8,113                                                       FeatureNEON,114                                                       FeatureDSP,115                                                       FeatureTrustZone,116                                                       FeatureMP,117                                                       FeatureVirtualization,118                                                       FeatureCrypto,119                                                       FeatureCRC,120                                                       FeatureRAS]>;121 122def ARMv83a   : Architecture<"armv8.3-a", "ARMv83a",  [HasV8_3aOps,123                                                       FeatureAClass,124                                                       FeatureDB,125                                                       FeatureFPARMv8,126                                                       FeatureNEON,127                                                       FeatureDSP,128                                                       FeatureTrustZone,129                                                       FeatureMP,130                                                       FeatureVirtualization,131                                                       FeatureCrypto,132                                                       FeatureCRC,133                                                       FeatureRAS]>;134 135def ARMv84a   : Architecture<"armv8.4-a", "ARMv84a",  [HasV8_4aOps,136                                                       FeatureAClass,137                                                       FeatureDB,138                                                       FeatureFPARMv8,139                                                       FeatureNEON,140                                                       FeatureDSP,141                                                       FeatureTrustZone,142                                                       FeatureMP,143                                                       FeatureVirtualization,144                                                       FeatureCrypto,145                                                       FeatureCRC,146                                                       FeatureRAS,147                                                       FeatureDotProd]>;148 149def ARMv85a   : Architecture<"armv8.5-a", "ARMv85a",  [HasV8_5aOps,150                                                       FeatureAClass,151                                                       FeatureDB,152                                                       FeatureFPARMv8,153                                                       FeatureNEON,154                                                       FeatureDSP,155                                                       FeatureTrustZone,156                                                       FeatureMP,157                                                       FeatureVirtualization,158                                                       FeatureCrypto,159                                                       FeatureCRC,160                                                       FeatureRAS,161                                                       FeatureDotProd]>;162def ARMv86a   : Architecture<"armv8.6-a", "ARMv86a",  [HasV8_6aOps,163                                                       FeatureAClass,164                                                       FeatureDB,165                                                       FeatureFPARMv8,166                                                       FeatureNEON,167                                                       FeatureDSP,168                                                       FeatureTrustZone,169                                                       FeatureMP,170                                                       FeatureVirtualization,171                                                       FeatureCrypto,172                                                       FeatureCRC,173                                                       FeatureRAS,174                                                       FeatureDotProd]>;175def ARMv87a   : Architecture<"armv8.7-a", "ARMv87a",  [HasV8_7aOps,176                                                       FeatureAClass,177                                                       FeatureDB,178                                                       FeatureFPARMv8,179                                                       FeatureNEON,180                                                       FeatureDSP,181                                                       FeatureTrustZone,182                                                       FeatureMP,183                                                       FeatureVirtualization,184                                                       FeatureCrypto,185                                                       FeatureCRC,186                                                       FeatureRAS,187                                                       FeatureDotProd]>;188def ARMv88a   : Architecture<"armv8.8-a", "ARMv88a",  [HasV8_8aOps,189                                                       FeatureAClass,190                                                       FeatureDB,191                                                       FeatureFPARMv8,192                                                       FeatureNEON,193                                                       FeatureDSP,194                                                       FeatureTrustZone,195                                                       FeatureMP,196                                                       FeatureVirtualization,197                                                       FeatureCrypto,198                                                       FeatureCRC,199                                                       FeatureRAS,200                                                       FeatureDotProd]>;201def ARMv89a   : Architecture<"armv8.9-a", "ARMv89a",  [HasV8_9aOps,202                                                       FeatureAClass,203                                                       FeatureDB,204                                                       FeatureFPARMv8,205                                                       FeatureNEON,206                                                       FeatureDSP,207                                                       FeatureTrustZone,208                                                       FeatureMP,209                                                       FeatureVirtualization,210                                                       FeatureCrypto,211                                                       FeatureCRC,212                                                       FeatureRAS,213                                                       FeatureDotProd]>;214 215def ARMv9a   : Architecture<"armv9-a", "ARMv9a",       [HasV9_0aOps,216                                                       FeatureAClass,217                                                       FeatureDB,218                                                       FeatureFPARMv8,219                                                       FeatureNEON,220                                                       FeatureDSP,221                                                       FeatureTrustZone,222                                                       FeatureMP,223                                                       FeatureVirtualization,224                                                       FeatureCRC,225                                                       FeatureRAS,226                                                       FeatureDotProd]>;227def ARMv91a   : Architecture<"armv9.1-a", "ARMv91a",   [HasV9_1aOps,228                                                       FeatureAClass,229                                                       FeatureDB,230                                                       FeatureFPARMv8,231                                                       FeatureNEON,232                                                       FeatureDSP,233                                                       FeatureTrustZone,234                                                       FeatureMP,235                                                       FeatureVirtualization,236                                                       FeatureCRC,237                                                       FeatureRAS,238                                                       FeatureDotProd]>;239def ARMv92a   : Architecture<"armv9.2-a", "ARMv92a",  [HasV9_2aOps,240                                                       FeatureAClass,241                                                       FeatureDB,242                                                       FeatureFPARMv8,243                                                       FeatureNEON,244                                                       FeatureDSP,245                                                       FeatureTrustZone,246                                                       FeatureMP,247                                                       FeatureVirtualization,248                                                       FeatureCRC,249                                                       FeatureRAS,250                                                       FeatureDotProd]>;251def ARMv93a   : Architecture<"armv9.3-a", "ARMv93a",  [HasV9_3aOps,252                                                       FeatureAClass,253                                                       FeatureDB,254                                                       FeatureFPARMv8,255                                                       FeatureNEON,256                                                       FeatureDSP,257                                                       FeatureTrustZone,258                                                       FeatureMP,259                                                       FeatureVirtualization,260                                                       FeatureCrypto,261                                                       FeatureCRC,262                                                       FeatureRAS,263                                                       FeatureDotProd]>;264def ARMv94a   : Architecture<"armv9.4-a", "ARMv94a",  [HasV9_4aOps,265                                                       FeatureAClass,266                                                       FeatureDB,267                                                       FeatureFPARMv8,268                                                       FeatureNEON,269                                                       FeatureDSP,270                                                       FeatureTrustZone,271                                                       FeatureMP,272                                                       FeatureVirtualization,273                                                       FeatureCRC,274                                                       FeatureRAS,275                                                       FeatureDotProd]>;276def ARMv95a   : Architecture<"armv9.5-a", "ARMv95a",  [HasV9_5aOps,277                                                       FeatureAClass,278                                                       FeatureDB,279                                                       FeatureFPARMv8,280                                                       FeatureNEON,281                                                       FeatureDSP,282                                                       FeatureTrustZone,283                                                       FeatureMP,284                                                       FeatureVirtualization,285                                                       FeatureCRC,286                                                       FeatureRAS,287                                                       FeatureDotProd]>;288def ARMv96a   : Architecture<"armv9.6-a", "ARMv96a",  [HasV9_6aOps,289                                                       FeatureAClass,290                                                       FeatureDB,291                                                       FeatureFPARMv8,292                                                       FeatureNEON,293                                                       FeatureDSP,294                                                       FeatureTrustZone,295                                                       FeatureMP,296                                                       FeatureVirtualization,297                                                       FeatureCRC,298                                                       FeatureRAS,299                                                       FeatureDotProd]>;300def ARMv97a   : Architecture<"armv9.7-a", "ARMv97a",  [HasV9_7aOps,301                                                       FeatureAClass,302                                                       FeatureDB,303                                                       FeatureFPARMv8,304                                                       FeatureNEON,305                                                       FeatureDSP,306                                                       FeatureTrustZone,307                                                       FeatureMP,308                                                       FeatureVirtualization,309                                                       FeatureCRC,310                                                       FeatureRAS,311                                                       FeatureDotProd]>;312def ARMv8r    : Architecture<"armv8-r",   "ARMv8r",   [HasV8Ops,313                                                       FeatureRClass,314                                                       FeatureDB,315                                                       FeatureDFB,316                                                       FeatureDSP,317                                                       FeatureCRC,318                                                       FeatureMP,319                                                       FeatureFPARMv8_D16_SP,320                                                       FeatureVirtualization]>;321 322def ARMv8mBaseline : Architecture<"armv8-m.base", "ARMv8mBaseline",323                                                      [HasV8MBaselineOps,324                                                       FeatureNoARM,325                                                       ModeThumb,326                                                       FeatureDB,327                                                       FeatureHWDivThumb,328                                                       FeatureV7Clrex,329                                                       Feature8MSecExt,330                                                       FeatureAcquireRelease,331                                                       FeatureMClass,332                                                       FeatureStrictAlign]>;333 334def ARMv8mMainline : Architecture<"armv8-m.main", "ARMv8mMainline",335                                                      [HasV8MMainlineOps,336                                                       FeatureNoARM,337                                                       ModeThumb,338                                                       FeatureDB,339                                                       FeatureHWDivThumb,340                                                       Feature8MSecExt,341                                                       FeatureAcquireRelease,342                                                       FeatureMClass]>;343 344def ARMv81mMainline : Architecture<"armv8.1-m.main", "ARMv81mMainline",345                                                      [HasV8_1MMainlineOps,346                                                       FeatureNoARM,347                                                       ModeThumb,348                                                       FeatureDB,349                                                       FeatureHWDivThumb,350                                                       Feature8MSecExt,351                                                       FeatureAcquireRelease,352                                                       FeatureMClass,353                                                       FeatureRAS,354                                                       FeatureLOB]>;355 356// Aliases357def IWMMXT   : Architecture<"iwmmxt",      "ARMv5te",  [ARMv5te]>;358def IWMMXT2  : Architecture<"iwmmxt2",     "ARMv5te",  [ARMv5te]>;359def XScale   : Architecture<"xscale",      "ARMv5te",  [ARMv5te]>;360def ARMv6j   : Architecture<"armv6j",      "ARMv7a",   [ARMv6]>;361def ARMv7k   : Architecture<"armv7k",      "ARMv7a",   [ARMv7a]>;362def ARMv7s   : Architecture<"armv7s",      "ARMv7a",   [ARMv7a]>;363