brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · ba27794 Raw
218 lines · plain
1## Validate MSPABI ELF Build Attributes2 3## The header of .MSP430.attributes can be specified with.4##  ContentArray: [ 0x41, 0x16, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,5##  0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00,6##7## Following that are individual bytes describing the ISA, code model, data8## model and optionally enum size.9##10## If enum size is being tested, then the second byte (indicating the length of11## the section), and last 32-bit int (indicating the length of the12## subsection) of the header should be incremented by 2. This is to account for13## the additional bytes for the enum size tag and value.14 15# HEADER:        BuildAttributes {16# HEADER-NEXT:   FormatVersion: 0x4117# HEADER-NEXT:   Section 1 {18# HEADER-NEXT:   SectionLength: 2219# HEADER-NEXT:   Vendor: mspabi20# HEADER-NEXT:   Tag: Tag_File (0x1)21# HEADER-NEXT:   Size: 1122 23# ENUM-HEADER:        BuildAttributes {24# ENUM-HEADER-NEXT:   FormatVersion: 0x4125# ENUM-HEADER-NEXT:   Section 1 {26# ENUM-HEADER-NEXT:   SectionLength: 2427# ENUM-HEADER-NEXT:   Vendor: mspabi28# ENUM-HEADER-NEXT:   Tag: Tag_File (0x1)29# ENUM-HEADER-NEXT:   Size: 1330 31# MSP430:      Tag: 432# MSP430-NEXT: Value: 133# MSP430-NEXT: TagName: ISA34# MSP430-NEXT: Description: MSP43035 36# MSP430X:      Tag: 437# MSP430X-NEXT: Value: 238# MSP430X-NEXT: TagName: ISA39# MSP430X-NEXT: Description: MSP430X40 41# SMALL-CODE:      Tag: 642# SMALL-CODE-NEXT: Value: 143# SMALL-CODE-NEXT: TagName: Code_Model44# SMALL-CODE-NEXT: Description: Small45 46# LARGE-CODE:      Tag: 647# LARGE-CODE-NEXT: Value: 248# LARGE-CODE-NEXT: TagName: Code_Model49# LARGE-CODE-NEXT: Description: Large50 51# SMALL-DATA:      Tag: 852# SMALL-DATA-NEXT: Value: 153# SMALL-DATA-NEXT: TagName: Data_Model54# SMALL-DATA-NEXT: Description: Small55 56# LARGE-DATA:      Tag: 857# LARGE-DATA-NEXT: Value: 258# LARGE-DATA-NEXT: TagName: Data_Model59# LARGE-DATA-NEXT: Description: Large60 61# RESTRICTED-DATA:      Tag: 862# RESTRICTED-DATA-NEXT: Value: 363# RESTRICTED-DATA-NEXT: TagName: Data_Model64# RESTRICTED-DATA-NEXT: Description: Restricted65 66# SMALL-ENUM:      Tag: 1067# SMALL-ENUM-NEXT: Value: 168# SMALL-ENUM-NEXT: TagName: Enum_Size69# SMALL-ENUM-NEXT: Description: Small70 71# INTEGER-ENUM:      Tag: 1072# INTEGER-ENUM-NEXT: Value: 273# INTEGER-ENUM-NEXT: TagName: Enum_Size74# INTEGER-ENUM-NEXT: Description: Integer75 76# DONT-CARE-ENUM:      Tag: 1077# DONT-CARE-ENUM-NEXT: Value: 378# DONT-CARE-ENUM-NEXT: TagName: Enum_Size79# DONT-CARE-ENUM-NEXT: Description: Don't Care80 81## MSP430 ISA82# RUN: yaml2obj --docnum=1 %s -o %t.o83# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes HEADER,MSP430,SMALL-CODE,SMALL-DATA84 85--- !ELF86FileHeader:87  Class:   ELFCLASS3288  Data:    ELFDATA2LSB89  Type:    ET_REL90  Machine: EM_MSP43091Sections:92  - Name: .MSP430.attributes93    Type: SHT_MSP430_ATTRIBUTES94    ContentArray: [ 0x41, 0x16, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,95    0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00,96    0x04, 0x01, 0x06, 0x01, 0x08, 0x01 ]97 98 99## MSP430X ISA, Small Code Model, Small Data Model100# RUN: yaml2obj --docnum=2 %s -o %t.o101# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes HEADER,MSP430X,SMALL-CODE,SMALL-DATA102 103--- !ELF104FileHeader:105  Class:   ELFCLASS32106  Data:    ELFDATA2LSB107  Type:    ET_REL108  Machine: EM_MSP430109Sections:110  - Name: .MSP430.attributes111    Type: SHT_MSP430_ATTRIBUTES112    ContentArray: [ 0x41, 0x16, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,113    0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00,114    0x04, 0x02, 0x06, 0x01, 0x08, 0x01 ]115 116## MSP430X Large Code Model, Small Data Model117# RUN: yaml2obj --docnum=3 %s -o %t.o118# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes HEADER,MSP430X,LARGE-CODE,SMALL-DATA119 120--- !ELF121FileHeader:122  Class:   ELFCLASS32123  Data:    ELFDATA2LSB124  Type:    ET_REL125  Machine: EM_MSP430126Sections:127  - Name: .MSP430.attributes128    Type: SHT_MSP430_ATTRIBUTES129    ContentArray: [ 0x41, 0x16, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,130    0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00,131    0x04, 0x02, 0x06, 0x02, 0x08, 0x01 ]132 133## MSP430X Small Code Model, Large Data Model134# RUN: yaml2obj --docnum=4 %s -o %t.o135# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes HEADER,MSP430X,SMALL-CODE,LARGE-DATA136 137--- !ELF138FileHeader:139  Class:   ELFCLASS32140  Data:    ELFDATA2LSB141  Type:    ET_REL142  Machine: EM_MSP430143Sections:144  - Name: .MSP430.attributes145    Type: SHT_MSP430_ATTRIBUTES146    ContentArray: [ 0x41, 0x16, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,147    0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00,148    0x04, 0x02, 0x06, 0x01, 0x08, 0x02 ]149 150## MSP430X Small Code Model, Restricted Data Model151# RUN: yaml2obj --docnum=5 %s -o %t.o152# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes HEADER,MSP430X,SMALL-CODE,RESTRICTED-DATA153 154--- !ELF155FileHeader:156  Class:   ELFCLASS32157  Data:    ELFDATA2LSB158  Type:    ET_REL159  Machine: EM_MSP430160Sections:161  - Name: .MSP430.attributes162    Type: SHT_MSP430_ATTRIBUTES163    ContentArray: [ 0x41, 0x16, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,164    0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00,165    0x04, 0x02, 0x06, 0x01, 0x08, 0x03 ]166 167## MSP430X Small Code Model, Small Data Model, Small Enums168# RUN: yaml2obj --docnum=6 %s -o %t.o169# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes ENUM-HEADER,MSP430X,SMALL-CODE,SMALL-DATA,SMALL-ENUM170 171--- !ELF172FileHeader:173  Class:   ELFCLASS32174  Data:    ELFDATA2LSB175  Type:    ET_REL176  Machine: EM_MSP430177Sections:178  - Name: .MSP430.attributes179    Type: SHT_MSP430_ATTRIBUTES180    ContentArray: [ 0x41, 0x18, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,181    0x69, 0x00, 0x01, 0x0d, 0x00, 0x00, 0x00,182    0x04, 0x02, 0x06, 0x01, 0x08, 0x01, 0x0a, 0x01 ]183 184## MSP430X Small Code Model, Small Data Model, Integer Enums185# RUN: yaml2obj --docnum=7 %s -o %t.o186# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes ENUM-HEADER,MSP430X,SMALL-CODE,SMALL-DATA,INTEGER-ENUM187 188--- !ELF189FileHeader:190  Class:   ELFCLASS32191  Data:    ELFDATA2LSB192  Type:    ET_REL193  Machine: EM_MSP430194Sections:195  - Name: .MSP430.attributes196    Type: SHT_MSP430_ATTRIBUTES197    ContentArray: [ 0x41, 0x18, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,198    0x69, 0x00, 0x01, 0x0d, 0x00, 0x00, 0x00,199    0x04, 0x02, 0x06, 0x01, 0x08, 0x01, 0x0a, 0x02 ]200 201 202## MSP430X Small Code Model, Small Data Model, "Don't Care" Enums203# RUN: yaml2obj --docnum=8 %s -o %t.o204# RUN: llvm-readobj -A %t.o | FileCheck %s --check-prefixes ENUM-HEADER,MSP430X,SMALL-CODE,SMALL-DATA,DONT-CARE-ENUM205 206--- !ELF207FileHeader:208  Class:   ELFCLASS32209  Data:    ELFDATA2LSB210  Type:    ET_REL211  Machine: EM_MSP430212Sections:213  - Name: .MSP430.attributes214    Type: SHT_MSP430_ATTRIBUTES215    ContentArray: [ 0x41, 0x18, 0x00, 0x00, 0x00, 0x6D, 0x73, 0x70, 0x61, 0x62,216    0x69, 0x00, 0x01, 0x0d, 0x00, 0x00, 0x00,217    0x04, 0x02, 0x06, 0x01, 0x08, 0x01, 0x0a, 0x03 ]218