mirror of
https://github.com/opnsense/src.git
synced 2026-02-28 12:20:54 -05:00
all of the features in the current working draft of the upcoming C++ standard, provisionally named C++1y. The code generator's performance is greatly increased, and the loop auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The PowerPC backend has made several major improvements to code generation quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ backends have all seen major feature work. Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.4/docs/ReleaseNotes.html> <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html> MFC after: 1 month
63 lines
2.2 KiB
C++
63 lines
2.2 KiB
C++
//===- PPCInstPrinter.h - Convert PPC MCInst to assembly syntax -*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This class prints an PPC MCInst to a .s file.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef PPCINSTPRINTER_H
|
|
#define PPCINSTPRINTER_H
|
|
|
|
#include "llvm/MC/MCInstPrinter.h"
|
|
|
|
namespace llvm {
|
|
|
|
class MCOperand;
|
|
|
|
class PPCInstPrinter : public MCInstPrinter {
|
|
bool IsDarwin;
|
|
public:
|
|
PPCInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII,
|
|
const MCRegisterInfo &MRI, bool isDarwin)
|
|
: MCInstPrinter(MAI, MII, MRI), IsDarwin(isDarwin) {}
|
|
|
|
bool isDarwinSyntax() const {
|
|
return IsDarwin;
|
|
}
|
|
|
|
virtual void printRegName(raw_ostream &OS, unsigned RegNo) const;
|
|
virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot);
|
|
|
|
// Autogenerated by tblgen.
|
|
void printInstruction(const MCInst *MI, raw_ostream &O);
|
|
static const char *getRegisterName(unsigned RegNo);
|
|
|
|
|
|
void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printPredicateOperand(const MCInst *MI, unsigned OpNo,
|
|
raw_ostream &O, const char *Modifier = 0);
|
|
|
|
|
|
void printS5ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printU5ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printU6ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printS16ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printU16ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printBranchOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printAbsBranchOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printTLSCall(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
|
|
void printcrbitm(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
|
|
void printMemRegImm(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
void printMemRegReg(const MCInst *MI, unsigned OpNo, raw_ostream &O);
|
|
};
|
|
} // end namespace llvm
|
|
|
|
#endif
|