1717#include " llvm/ExecutionEngine/JITLink/JITLink.h"
1818#include " llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"
1919#include " llvm/Object/ELFObjectFile.h"
20+ #include " llvm/Support/Compiler.h"
2021#include " llvm/Support/Endian.h"
2122#include " llvm/Support/ManagedStatic.h"
2223#include " llvm/Support/MathExtras.h"
@@ -62,7 +63,7 @@ int64_t decodeImmBT4BlT1BlxT2(uint32_t Hi, uint32_t Lo) {
6263// /
6364// / S:I1:I2:Imm10:Imm11:0 -> [ 00000:S:Imm10, 00:J1:0:J2:Imm11 ]
6465// /
65- HalfWords encodeImmBT4BlT1BlxT2_J1J2 (int64_t Value) {
66+ LLVM_ABI HalfWords encodeImmBT4BlT1BlxT2_J1J2 (int64_t Value) {
6667 uint32_t S = (Value >> 14 ) & 0x0400 ;
6768 uint32_t J1 = (((~(Value >> 10 )) ^ (Value >> 11 )) & 0x2000 );
6869 uint32_t J2 = (((~(Value >> 11 )) ^ (Value >> 13 )) & 0x0800 );
@@ -76,7 +77,7 @@ HalfWords encodeImmBT4BlT1BlxT2_J1J2(int64_t Value) {
7677// /
7778// / [ 00000:S:Imm10, 00:J1:0:J2:Imm11] -> S:I1:I2:Imm10:Imm11:0
7879// /
79- int64_t decodeImmBT4BlT1BlxT2_J1J2 (uint32_t Hi, uint32_t Lo) {
80+ LLVM_ABI int64_t decodeImmBT4BlT1BlxT2_J1J2 (uint32_t Hi, uint32_t Lo) {
8081 uint32_t S = Hi & 0x0400 ;
8182 uint32_t I1 = ~((Lo ^ (Hi << 3 )) << 10 ) & 0x00800000 ;
8283 uint32_t I2 = ~((Lo ^ (Hi << 1 )) << 11 ) & 0x00400000 ;
@@ -90,7 +91,7 @@ int64_t decodeImmBT4BlT1BlxT2_J1J2(uint32_t Hi, uint32_t Lo) {
9091// /
9192// / Imm24:00 -> 00000000:Imm24
9293// /
93- uint32_t encodeImmBA1BlA1BlxA2 (int64_t Value) {
94+ LLVM_ABI uint32_t encodeImmBA1BlA1BlxA2 (int64_t Value) {
9495 return (Value >> 2 ) & 0x00ffffff ;
9596}
9697
@@ -99,7 +100,7 @@ uint32_t encodeImmBA1BlA1BlxA2(int64_t Value) {
99100// /
100101// / 00000000:Imm24 -> Imm24:00
101102// /
102- int64_t decodeImmBA1BlA1BlxA2 (int64_t Value) {
103+ LLVM_ABI int64_t decodeImmBA1BlA1BlxA2 (int64_t Value) {
103104 return SignExtend64<26 >((Value & 0x00ffffff ) << 2 );
104105}
105106
@@ -108,7 +109,7 @@ int64_t decodeImmBA1BlA1BlxA2(int64_t Value) {
108109// /
109110// / Imm4:Imm1:Imm3:Imm8 -> [ 00000:i:000000:Imm4, 0:Imm3:0000:Imm8 ]
110111// /
111- HalfWords encodeImmMovtT1MovwT3 (uint16_t Value) {
112+ LLVM_ABI HalfWords encodeImmMovtT1MovwT3 (uint16_t Value) {
112113 uint32_t Imm4 = (Value >> 12 ) & 0x0f ;
113114 uint32_t Imm1 = (Value >> 11 ) & 0x01 ;
114115 uint32_t Imm3 = (Value >> 8 ) & 0x07 ;
@@ -121,7 +122,7 @@ HalfWords encodeImmMovtT1MovwT3(uint16_t Value) {
121122// /
122123// / [ 00000:i:000000:Imm4, 0:Imm3:0000:Imm8 ] -> Imm4:Imm1:Imm3:Imm8
123124// /
124- uint16_t decodeImmMovtT1MovwT3 (uint32_t Hi, uint32_t Lo) {
125+ LLVM_ABI uint16_t decodeImmMovtT1MovwT3 (uint32_t Hi, uint32_t Lo) {
125126 uint32_t Imm4 = Hi & 0x0f ;
126127 uint32_t Imm1 = (Hi >> 10 ) & 0x01 ;
127128 uint32_t Imm3 = (Lo >> 12 ) & 0x07 ;
@@ -135,7 +136,7 @@ uint16_t decodeImmMovtT1MovwT3(uint32_t Hi, uint32_t Lo) {
135136// /
136137// / Rd4 -> [0000000000000000, 0000:Rd4:00000000]
137138// /
138- HalfWords encodeRegMovtT1MovwT3 (int64_t Value) {
139+ LLVM_ABI HalfWords encodeRegMovtT1MovwT3 (int64_t Value) {
139140 uint32_t Rd4 = (Value & 0x0f ) << 8 ;
140141 return HalfWords{0 , Rd4};
141142}
@@ -144,7 +145,7 @@ HalfWords encodeRegMovtT1MovwT3(int64_t Value) {
144145// /
145146// / [0000000000000000, 0000:Rd4:00000000] -> Rd4
146147// /
147- int64_t decodeRegMovtT1MovwT3 (uint32_t Hi, uint32_t Lo) {
148+ LLVM_ABI int64_t decodeRegMovtT1MovwT3 (uint32_t Hi, uint32_t Lo) {
148149 uint32_t Rd4 = (Lo >> 8 ) & 0x0f ;
149150 return Rd4;
150151}
@@ -154,7 +155,7 @@ int64_t decodeRegMovtT1MovwT3(uint32_t Hi, uint32_t Lo) {
154155// /
155156// / Imm4:Imm12 -> 000000000000:Imm4:0000:Imm12
156157// /
157- uint32_t encodeImmMovtA1MovwA2 (uint16_t Value) {
158+ LLVM_ABI uint32_t encodeImmMovtA1MovwA2 (uint16_t Value) {
158159 uint32_t Imm4 = (Value >> 12 ) & 0x0f ;
159160 uint32_t Imm12 = Value & 0x0fff ;
160161 return (Imm4 << 16 ) | Imm12;
@@ -165,7 +166,7 @@ uint32_t encodeImmMovtA1MovwA2(uint16_t Value) {
165166// /
166167// / 000000000000:Imm4:0000:Imm12 -> Imm4:Imm12
167168// /
168- uint16_t decodeImmMovtA1MovwA2 (uint64_t Value) {
169+ LLVM_ABI uint16_t decodeImmMovtA1MovwA2 (uint64_t Value) {
169170 uint32_t Imm4 = (Value >> 16 ) & 0x0f ;
170171 uint32_t Imm12 = Value & 0x0fff ;
171172 return (Imm4 << 12 ) | Imm12;
@@ -176,7 +177,7 @@ uint16_t decodeImmMovtA1MovwA2(uint64_t Value) {
176177// /
177178// / Rd4 -> 0000000000000000:Rd4:000000000000
178179// /
179- uint32_t encodeRegMovtA1MovwA2 (int64_t Value) {
180+ LLVM_ABI uint32_t encodeRegMovtA1MovwA2 (int64_t Value) {
180181 uint32_t Rd4 = (Value & 0x00000f ) << 12 ;
181182 return Rd4;
182183}
@@ -186,7 +187,7 @@ uint32_t encodeRegMovtA1MovwA2(int64_t Value) {
186187// /
187188// / 0000000000000000:Rd4:000000000000 -> Rd4
188189// /
189- int64_t decodeRegMovtA1MovwA2 (uint64_t Value) {
190+ LLVM_ABI int64_t decodeRegMovtA1MovwA2 (uint64_t Value) {
190191 uint32_t Rd4 = (Value >> 12 ) & 0x00000f ;
191192 return Rd4;
192193}
0 commit comments