Skip to content

Commit ff036fa

Browse files
committed
fix compil
1 parent 2330597 commit ff036fa

19 files changed

Lines changed: 99 additions & 93 deletions

File tree

clang/include/clang/Basic/Attr.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1942,7 +1942,7 @@ def AnyZ80Interrupt : InheritableAttr, TargetSpecificAttr<TargetAnyZ80> {
19421942
// MipsInterrupt's and AnyX86Interrupt's spellings must match.
19431943
let Spellings = [GNU<"interrupt">];
19441944
let Subjects = SubjectList<[Function]>;
1945-
let Args = [EnumArgument<"Interrupt", "InterruptType",
1945+
let Args = [EnumArgument<"Interrupt", "InterruptType", /*is_string=*/true,
19461946
["", "nested", "nmi"],
19471947
["Generic", "Nested", "NMI"],
19481948
1>];

clang/include/clang/Sema/Sema.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ class SemaSwift;
195195
class SemaSystemZ;
196196
class SemaWasm;
197197
class SemaX86;
198+
class SemaZ80;
198199
class StandardConversionSequence;
199200
class Stmt;
200201
class StringLiteral;
@@ -1261,6 +1262,11 @@ class Sema final : public SemaBase {
12611262
return *X86Ptr;
12621263
}
12631264

1265+
SemaZ80 &Z80() {
1266+
assert(Z80Ptr);
1267+
return *Z80Ptr;
1268+
}
1269+
12641270
/// Source of additional semantic information.
12651271
IntrusiveRefCntPtr<ExternalSemaSource> ExternalSource;
12661272

@@ -1316,6 +1322,7 @@ class Sema final : public SemaBase {
13161322
std::unique_ptr<SemaSystemZ> SystemZPtr;
13171323
std::unique_ptr<SemaWasm> WasmPtr;
13181324
std::unique_ptr<SemaX86> X86Ptr;
1325+
std::unique_ptr<SemaZ80> Z80Ptr;
13191326

13201327
///@}
13211328

clang/include/clang/Sema/SemaZ80.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class SemaZ80 : public SemaBase {
2626
public:
2727
SemaZ80(Sema &S);
2828

29-
void handleZ80InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL)
29+
void handleZ80InterruptAttr(Decl *D, const ParsedAttr &AL);
3030
};
3131
} // namespace clang
3232

clang/lib/Basic/Targets/Z80.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ Z80TargetInfoBase::convertConstraint(const char *&Constraint) const {
203203
}
204204

205205
ArrayRef<TargetInfo::AddlRegName> Z80TargetInfoBase::getGCCAddlRegNames() const {
206-
return llvm::makeArrayRef(AddlRegNames);
206+
return ArrayRef(AddlRegNames);
207207
}
208208

209209
bool Z80TargetInfo::setCPU(const std::string &Name) {
@@ -240,12 +240,11 @@ void Z80TargetInfo::getTargetDefines(const LangOptions &Opts,
240240
}
241241

242242
ArrayRef<Builtin::Info> Z80TargetInfo::getTargetBuiltins() const {
243-
return llvm::makeArrayRef(BuiltinInfoZ80, Z80::LastZ80CommonBuiltin -
244-
Builtin::FirstTSBuiltin + 1);
243+
return {}; // ArrayRef(BuiltinInfoZ80, Z80::LastZ80CommonBuiltin - Builtin::FirstTSBuiltin + 1);
245244
}
246245

247246
ArrayRef<const char *> Z80TargetInfo::getGCCRegNames() const {
248-
return llvm::makeArrayRef(Z80GCCRegNames);
247+
return ArrayRef(Z80GCCRegNames);
249248
}
250249

251250
bool EZ80TargetInfo::setCPU(const std::string &Name) {
@@ -263,10 +262,10 @@ void EZ80TargetInfo::getTargetDefines(const LangOptions &Opts,
263262
}
264263

265264
ArrayRef<Builtin::Info> EZ80TargetInfo::getTargetBuiltins() const {
266-
return llvm::makeArrayRef(BuiltinInfoZ80,
265+
return ArrayRef(BuiltinInfoZ80,
267266
Z80::LastTSBuiltin - Builtin::FirstTSBuiltin);
268267
}
269268

270269
ArrayRef<const char *> EZ80TargetInfo::getGCCRegNames() const {
271-
return llvm::makeArrayRef(EZ80GCCRegNames);
270+
return ArrayRef(EZ80GCCRegNames);
272271
}

clang/lib/CodeGen/ABIInfoImpl.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,14 @@ RValue CodeGen::emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
238238
return CGF.EmitLoadOfAnyValue(CGF.MakeAddrLValue(Addr, ValueTy), Slot);
239239
}
240240

241-
Address CodeGen::emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
241+
RValue CodeGen::emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
242242
QualType ValueTy, bool IsIndirect,
243243
TypeInfoChars ValueInfo, CharUnits SlotSizeAndAlign,
244-
bool AllowHigherAlign, bool ForceRightAdjust) {
244+
bool AllowHigherAlign, AggValueSlot Slot,
245+
bool ForceRightAdjust) {
245246
return emitVoidPtrVAArg(CGF, VAListAddr, ValueTy, IsIndirect, ValueInfo,
246247
SlotSizeAndAlign, SlotSizeAndAlign, AllowHigherAlign,
247-
ForceRightAdjust);
248+
Slot, ForceRightAdjust);
248249
}
249250

250251
Address CodeGen::emitMergePHI(CodeGenFunction &CGF, Address Addr1,

clang/lib/CodeGen/ABIInfoImpl.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,14 @@ Address emitVoidPtrDirectVAArg(CodeGenFunction &CGF, Address VAListAddr,
119119
RValue emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
120120
QualType ValueTy, bool IsIndirect,
121121
TypeInfoChars ValueInfo, CharUnits SlotSize,
122-
CharUnits SlotAlign,
123-
bool AllowHigherAlign, bool ForceRightAdjust = false);
124-
125-
Address emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
126-
QualType ValueTy, bool IsIndirect,
127-
TypeInfoChars ValueInfo, CharUnits SlotSizeAndAlign,
128-
bool AllowHigherAlign, AggValueSlot Slot,
129-
bool ForceRightAdjust = false);
122+
CharUnits SlotAlign, bool AllowHigherAlign,
123+
AggValueSlot Slot, bool ForceRightAdjust = false);
124+
125+
RValue emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
126+
QualType ValueTy, bool IsIndirect,
127+
TypeInfoChars ValueInfo, CharUnits SlotSizeAndAlign,
128+
bool AllowHigherAlign, AggValueSlot Slot,
129+
bool ForceRightAdjust = false);
130130

131131
Address emitMergePHI(CodeGenFunction &CGF, Address Addr1,
132132
llvm::BasicBlock *Block1, Address Addr2,

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22084,7 +22084,7 @@ Value *CodeGenFunction::EmitZ80BuiltinExpr(unsigned BuiltinID,
2208422084
const CallExpr *E) {
2208522085
switch (BuiltinID) {
2208622086
case Z80::BI__builtin_bitreverse24:
22087-
return emitUnaryBuiltin(*this, E, Intrinsic::bitreverse);
22087+
return emitBuiltinWithOneOverloadedType<1>(*this, E, Intrinsic::bitreverse);
2208822088
default:
2208922089
return nullptr;
2209022090
}

clang/lib/CodeGen/Targets/Z80.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ class Z80ABIInfo : public DefaultABIInfo {
3232
removeExtend(Arg.info = classifyArgumentType(Arg.type));
3333
}
3434

35-
Address EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
36-
QualType Ty) const override;
35+
RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
36+
QualType Ty, AggValueSlot Slot) const override;
3737
};
3838

3939
class Z80TargetCodeGenInfo : public TargetCodeGenInfo {
@@ -45,15 +45,18 @@ class Z80TargetCodeGenInfo : public TargetCodeGenInfo {
4545
};
4646
} // namespace
4747

48-
Address Z80ABIInfo::EmitVAArg(CodeGenFunction &CGF,
49-
Address VAListAddr, QualType Ty) const {
50-
Address Addr = emitVoidPtrVAArg(
48+
RValue Z80ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
49+
QualType Ty, AggValueSlot Slot) const {
50+
return emitVoidPtrVAArg(
5151
CGF, VAListAddr, Ty, /*Indirect*/ false,
5252
getContext().getTypeInfoInChars(Ty),
53-
CharUnits::fromQuantity(getDataLayout().getPointerSize()),
54-
CharUnits::One(), /*AllowHigherAlign*/ false);
53+
/*SlotSize*/ CharUnits::fromQuantity(getDataLayout().getPointerSize()),
54+
/*SlotAlign*/ CharUnits::One(),
55+
/*AllowHigherAlign*/ false,
56+
Slot);
57+
// TODO adriweb: comment by jacobly:
5558
// Remove SlotSize over-alignment, since stack is never aligned.
56-
return Address(Addr.getPointer(), Addr.getType(), CharUnits::fromQuantity(1));
59+
// return Address(Addr.getPointer(), CharUnits::fromQuantity(1));
5760
}
5861

5962
void Z80TargetCodeGenInfo::setTargetAttributes(

clang/lib/Driver/ToolChains/Arch/Z80.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "clang/Driver/Options.h"
1414
#include "llvm/ADT/StringSwitch.h"
1515
#include "llvm/Option/ArgList.h"
16-
#include "llvm/Support/Host.h"
1716

1817
using namespace clang::driver;
1918
using namespace clang::driver::tools;

clang/lib/Sema/Sema.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
#include "clang/Sema/SemaSystemZ.h"
6969
#include "clang/Sema/SemaWasm.h"
7070
#include "clang/Sema/SemaX86.h"
71+
#include "clang/Sema/SemaZ80.h"
7172
#include "clang/Sema/TemplateDeduction.h"
7273
#include "clang/Sema/TemplateInstCallback.h"
7374
#include "clang/Sema/TypoCorrection.h"
@@ -247,6 +248,7 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer,
247248
SystemZPtr(std::make_unique<SemaSystemZ>(*this)),
248249
WasmPtr(std::make_unique<SemaWasm>(*this)),
249250
X86Ptr(std::make_unique<SemaX86>(*this)),
251+
Z80Ptr(std::make_unique<SemaZ80>(*this)),
250252
MSPointerToMemberRepresentationMethod(
251253
LangOpts.getMSPointerToMemberRepresentationMethod()),
252254
MSStructPragmaOn(false), VtorDispStack(LangOpts.getVtorDispMode()),

0 commit comments

Comments
 (0)