mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
13a949071c
1. A delay slot filler that searches for valid instructions to fill the delay slot with. Previously NOPs would always be inserted into delay slots. 2. Support for MC based instruction printer added. 3. Support for MC based machine code generation and ELF file generation. ELF file generation does not yet completely work as much of the ELF support infrastructure is still x86/x86-64 specific. 4. General clean up of the MBlaze backend code. Much of the tablegen code has been cleanup and simplified. Bug Fixes: 1. Removed duplicate periods from subtarget feature descriptions. 2. Many of the instructions had bad machine code information in the tablegen files. Much of this has been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116986 91177308-0d34-0410-b5e6-96231b3b80d8
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
//===-- MBlaze.h - Top-level interface for MBlaze ---------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains the entry points for global functions defined in
|
|
// the LLVM MBlaze back-end.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef TARGET_MBLAZE_H
|
|
#define TARGET_MBLAZE_H
|
|
|
|
#include "llvm/Target/TargetMachine.h"
|
|
|
|
namespace llvm {
|
|
class MBlazeTargetMachine;
|
|
class FunctionPass;
|
|
class MachineCodeEmitter;
|
|
class MCCodeEmitter;
|
|
class TargetAsmBackend;
|
|
class formatted_raw_ostream;
|
|
|
|
MCCodeEmitter *createMBlazeMCCodeEmitter(const Target &,
|
|
TargetMachine &TM,
|
|
MCContext &Ctx);
|
|
|
|
TargetAsmBackend *createMBlazeAsmBackend(const Target &, const std::string &);
|
|
|
|
FunctionPass *createMBlazeISelDag(MBlazeTargetMachine &TM);
|
|
FunctionPass *createMBlazeDelaySlotFillerPass(MBlazeTargetMachine &TM);
|
|
|
|
extern Target TheMBlazeTarget;
|
|
} // end namespace llvm;
|
|
|
|
// Defines symbolic names for MBlaze registers. This defines a mapping from
|
|
// register name to register number.
|
|
#include "MBlazeGenRegisterNames.inc"
|
|
|
|
// Defines symbolic names for the MBlaze instructions.
|
|
#include "MBlazeGenInstrNames.inc"
|
|
|
|
#endif
|