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