1515#include  " llvm/ADT/StringExtras.h" 
1616#include  " llvm/ExecutionEngine/JITLink/JITLink.h" 
1717#include  " llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h" 
18+ #include  " llvm/Support/Compiler.h" 
1819#include  " llvm/Support/Endian.h" 
1920#include  " llvm/Support/ManagedStatic.h" 
2021#include  " llvm/Support/MathExtras.h" 
@@ -60,7 +61,7 @@ int64_t decodeImmBT4BlT1BlxT2(uint32_t Hi, uint32_t Lo) {
6061// /
6162// /   S:I1:I2:Imm10:Imm11:0 -> [ 00000:S:Imm10, 00:J1:0:J2:Imm11 ]
6263// /
63- HalfWords encodeImmBT4BlT1BlxT2_J1J2 (int64_t  Value) {
64+ LLVM_ABI  HalfWords encodeImmBT4BlT1BlxT2_J1J2 (int64_t  Value) {
6465  uint32_t  S = (Value >> 14 ) & 0x0400 ;
6566  uint32_t  J1 = (((~(Value >> 10 )) ^ (Value >> 11 )) & 0x2000 );
6667  uint32_t  J2 = (((~(Value >> 11 )) ^ (Value >> 13 )) & 0x0800 );
@@ -74,7 +75,7 @@ HalfWords encodeImmBT4BlT1BlxT2_J1J2(int64_t Value) {
7475// /
7576// /   [ 00000:S:Imm10, 00:J1:0:J2:Imm11] -> S:I1:I2:Imm10:Imm11:0
7677// /
77- int64_t  decodeImmBT4BlT1BlxT2_J1J2 (uint32_t  Hi, uint32_t  Lo) {
78+ LLVM_ABI  int64_t  decodeImmBT4BlT1BlxT2_J1J2 (uint32_t  Hi, uint32_t  Lo) {
7879  uint32_t  S = Hi & 0x0400 ;
7980  uint32_t  I1 = ~((Lo ^ (Hi << 3 )) << 10 ) & 0x00800000 ;
8081  uint32_t  I2 = ~((Lo ^ (Hi << 1 )) << 11 ) & 0x00400000 ;
@@ -88,7 +89,7 @@ int64_t decodeImmBT4BlT1BlxT2_J1J2(uint32_t Hi, uint32_t Lo) {
8889// /
8990// /   Imm24:00 ->  00000000:Imm24
9091// /
91- uint32_t  encodeImmBA1BlA1BlxA2 (int64_t  Value) {
92+ LLVM_ABI  uint32_t  encodeImmBA1BlA1BlxA2 (int64_t  Value) {
9293  return  (Value >> 2 ) & 0x00ffffff ;
9394}
9495
@@ -97,7 +98,7 @@ uint32_t encodeImmBA1BlA1BlxA2(int64_t Value) {
9798// /
9899// /   00000000:Imm24 ->  Imm24:00
99100// /
100- int64_t  decodeImmBA1BlA1BlxA2 (int64_t  Value) {
101+ LLVM_ABI  int64_t  decodeImmBA1BlA1BlxA2 (int64_t  Value) {
101102  return  SignExtend64<26 >((Value & 0x00ffffff ) << 2 );
102103}
103104
@@ -106,7 +107,7 @@ int64_t decodeImmBA1BlA1BlxA2(int64_t Value) {
106107// /
107108// /   Imm4:Imm1:Imm3:Imm8 -> [ 00000:i:000000:Imm4, 0:Imm3:0000:Imm8 ]
108109// /
109- HalfWords encodeImmMovtT1MovwT3 (uint16_t  Value) {
110+ LLVM_ABI  HalfWords encodeImmMovtT1MovwT3 (uint16_t  Value) {
110111  uint32_t  Imm4 = (Value >> 12 ) & 0x0f ;
111112  uint32_t  Imm1 = (Value >> 11 ) & 0x01 ;
112113  uint32_t  Imm3 = (Value >> 8 ) & 0x07 ;
@@ -119,7 +120,7 @@ HalfWords encodeImmMovtT1MovwT3(uint16_t Value) {
119120// /
120121// /   [ 00000:i:000000:Imm4, 0:Imm3:0000:Imm8 ] -> Imm4:Imm1:Imm3:Imm8
121122// /
122- uint16_t  decodeImmMovtT1MovwT3 (uint32_t  Hi, uint32_t  Lo) {
123+ LLVM_ABI  uint16_t  decodeImmMovtT1MovwT3 (uint32_t  Hi, uint32_t  Lo) {
123124  uint32_t  Imm4 = Hi & 0x0f ;
124125  uint32_t  Imm1 = (Hi >> 10 ) & 0x01 ;
125126  uint32_t  Imm3 = (Lo >> 12 ) & 0x07 ;
@@ -133,7 +134,7 @@ uint16_t decodeImmMovtT1MovwT3(uint32_t Hi, uint32_t Lo) {
133134// /
134135// /   Rd4 -> [0000000000000000, 0000:Rd4:00000000]
135136// /
136- HalfWords encodeRegMovtT1MovwT3 (int64_t  Value) {
137+ LLVM_ABI  HalfWords encodeRegMovtT1MovwT3 (int64_t  Value) {
137138  uint32_t  Rd4 = (Value & 0x0f ) << 8 ;
138139  return  HalfWords{0 , Rd4};
139140}
@@ -142,7 +143,7 @@ HalfWords encodeRegMovtT1MovwT3(int64_t Value) {
142143// /
143144// /   [0000000000000000, 0000:Rd4:00000000] -> Rd4
144145// /
145- int64_t  decodeRegMovtT1MovwT3 (uint32_t  Hi, uint32_t  Lo) {
146+ LLVM_ABI  int64_t  decodeRegMovtT1MovwT3 (uint32_t  Hi, uint32_t  Lo) {
146147  uint32_t  Rd4 = (Lo >> 8 ) & 0x0f ;
147148  return  Rd4;
148149}
@@ -152,7 +153,7 @@ int64_t decodeRegMovtT1MovwT3(uint32_t Hi, uint32_t Lo) {
152153// /
153154// /   Imm4:Imm12 -> 000000000000:Imm4:0000:Imm12
154155// /
155- uint32_t  encodeImmMovtA1MovwA2 (uint16_t  Value) {
156+ LLVM_ABI  uint32_t  encodeImmMovtA1MovwA2 (uint16_t  Value) {
156157  uint32_t  Imm4 = (Value >> 12 ) & 0x0f ;
157158  uint32_t  Imm12 = Value & 0x0fff ;
158159  return  (Imm4 << 16 ) | Imm12;
@@ -163,7 +164,7 @@ uint32_t encodeImmMovtA1MovwA2(uint16_t Value) {
163164// /
164165// /   000000000000:Imm4:0000:Imm12 -> Imm4:Imm12
165166// /
166- uint16_t  decodeImmMovtA1MovwA2 (uint64_t  Value) {
167+ LLVM_ABI  uint16_t  decodeImmMovtA1MovwA2 (uint64_t  Value) {
167168  uint32_t  Imm4 = (Value >> 16 ) & 0x0f ;
168169  uint32_t  Imm12 = Value & 0x0fff ;
169170  return  (Imm4 << 12 ) | Imm12;
@@ -174,7 +175,7 @@ uint16_t decodeImmMovtA1MovwA2(uint64_t Value) {
174175// /
175176// /   Rd4 -> 0000000000000000:Rd4:000000000000
176177// /
177- uint32_t  encodeRegMovtA1MovwA2 (int64_t  Value) {
178+ LLVM_ABI  uint32_t  encodeRegMovtA1MovwA2 (int64_t  Value) {
178179  uint32_t  Rd4 = (Value & 0x00000f ) << 12 ;
179180  return  Rd4;
180181}
@@ -184,7 +185,7 @@ uint32_t encodeRegMovtA1MovwA2(int64_t Value) {
184185// /
185186// /   0000000000000000:Rd4:000000000000 -> Rd4
186187// /
187- int64_t  decodeRegMovtA1MovwA2 (uint64_t  Value) {
188+ LLVM_ABI  int64_t  decodeRegMovtA1MovwA2 (uint64_t  Value) {
188189  uint32_t  Rd4 = (Value >> 12 ) & 0x00000f ;
189190  return  Rd4;
190191}
0 commit comments