OLD | NEW |
1 //===---- TargetInfo.cpp - Encapsulate target details -----------*- C++ -*-===// | 1 //===---- TargetInfo.cpp - Encapsulate target details -----------*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // These classes wrap the information about a call or function | 10 // These classes wrap the information about a call or function |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 | 441 |
442 void computeInfo(CGFunctionInfo &FI) const override; | 442 void computeInfo(CGFunctionInfo &FI) const override; |
443 llvm::Value *EmitVAArg(llvm::Value *VAListAddr, QualType Ty, | 443 llvm::Value *EmitVAArg(llvm::Value *VAListAddr, QualType Ty, |
444 CodeGenFunction &CGF) const override; | 444 CodeGenFunction &CGF) const override; |
445 }; | 445 }; |
446 | 446 |
447 class PNaClTargetCodeGenInfo : public TargetCodeGenInfo { | 447 class PNaClTargetCodeGenInfo : public TargetCodeGenInfo { |
448 public: | 448 public: |
449 PNaClTargetCodeGenInfo(CodeGen::CodeGenTypes &CGT) | 449 PNaClTargetCodeGenInfo(CodeGen::CodeGenTypes &CGT) |
450 : TargetCodeGenInfo(new PNaClABIInfo(CGT)) {} | 450 : TargetCodeGenInfo(new PNaClABIInfo(CGT)) {} |
| 451 |
| 452 bool addAsmMemoryAroundSyncSynchronize() const { return true; } // @LOCALMOD |
| 453 bool asmMemoryIsFence() const { return true; } // @LOCALMOD |
451 }; | 454 }; |
452 | 455 |
453 void PNaClABIInfo::computeInfo(CGFunctionInfo &FI) const { | 456 void PNaClABIInfo::computeInfo(CGFunctionInfo &FI) const { |
454 if (!getCXXABI().classifyReturnType(FI)) | 457 if (!getCXXABI().classifyReturnType(FI)) |
455 FI.getReturnInfo() = classifyReturnType(FI.getReturnType()); | 458 FI.getReturnInfo() = classifyReturnType(FI.getReturnType()); |
456 | 459 |
457 for (auto &I : FI.arguments()) | 460 for (auto &I : FI.arguments()) |
458 I.info = classifyArgumentType(I.type); | 461 I.info = classifyArgumentType(I.type); |
459 } | 462 } |
460 | 463 |
(...skipping 6678 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7139 } | 7142 } |
7140 } | 7143 } |
7141 case llvm::Triple::hexagon: | 7144 case llvm::Triple::hexagon: |
7142 return *(TheTargetCodeGenInfo = new HexagonTargetCodeGenInfo(Types)); | 7145 return *(TheTargetCodeGenInfo = new HexagonTargetCodeGenInfo(Types)); |
7143 case llvm::Triple::sparcv9: | 7146 case llvm::Triple::sparcv9: |
7144 return *(TheTargetCodeGenInfo = new SparcV9TargetCodeGenInfo(Types)); | 7147 return *(TheTargetCodeGenInfo = new SparcV9TargetCodeGenInfo(Types)); |
7145 case llvm::Triple::xcore: | 7148 case llvm::Triple::xcore: |
7146 return *(TheTargetCodeGenInfo = new XCoreTargetCodeGenInfo(Types)); | 7149 return *(TheTargetCodeGenInfo = new XCoreTargetCodeGenInfo(Types)); |
7147 } | 7150 } |
7148 } | 7151 } |
OLD | NEW |