[llvm-commits] [llvm] r147923 - in /llvm/trunk: lib/Target/Mips/AsmParser/ lib/Target/Mips/AsmParser/CMakeLists.txt lib/Target/Mips/AsmParser/LLVMBuild.txt lib/Target/Mips/AsmParser/Makefile lib/Target/Mips/AsmParser/MipsAsmParser.cpp lib/Target/Mips/CMakeLists.txt lib/Target/Mips/LLVMBuild.txt lib/Target/Mips/Makefile test/MC/Mips/elf_basic.s
Rafael Espindola
rafael.espindola at gmail.com
Tue Jan 10 19:56:41 PST 2012
Author: rafael
Date: Tue Jan 10 21:56:41 2012
New Revision: 147923
URL: http://llvm.org/viewvc/llvm-project?rev=147923&view=rev
Log:
Add the skeleton of an asm parser for mips.
Added:
llvm/trunk/lib/Target/Mips/AsmParser/
llvm/trunk/lib/Target/Mips/AsmParser/CMakeLists.txt
llvm/trunk/lib/Target/Mips/AsmParser/LLVMBuild.txt
- copied, changed from r147912, llvm/trunk/lib/Target/Mips/LLVMBuild.txt
llvm/trunk/lib/Target/Mips/AsmParser/Makefile
llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/trunk/test/MC/Mips/elf_basic.s
Modified:
llvm/trunk/lib/Target/Mips/CMakeLists.txt
llvm/trunk/lib/Target/Mips/LLVMBuild.txt
llvm/trunk/lib/Target/Mips/Makefile
Added: llvm/trunk/lib/Target/Mips/AsmParser/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/AsmParser/CMakeLists.txt?rev=147923&view=auto
==============================================================================
--- llvm/trunk/lib/Target/Mips/AsmParser/CMakeLists.txt (added)
+++ llvm/trunk/lib/Target/Mips/AsmParser/CMakeLists.txt Tue Jan 10 21:56:41 2012
@@ -0,0 +1,6 @@
+include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
+
+add_llvm_library(LLVMMipsAsmParser
+ MipsAsmParser.cpp
+ )
+
Copied: llvm/trunk/lib/Target/Mips/AsmParser/LLVMBuild.txt (from r147912, llvm/trunk/lib/Target/Mips/LLVMBuild.txt)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/AsmParser/LLVMBuild.txt?p2=llvm/trunk/lib/Target/Mips/AsmParser/LLVMBuild.txt&p1=llvm/trunk/lib/Target/Mips/LLVMBuild.txt&r1=147912&r2=147923&rev=147923&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/LLVMBuild.txt (original)
+++ llvm/trunk/lib/Target/Mips/AsmParser/LLVMBuild.txt Tue Jan 10 21:56:41 2012
@@ -1,4 +1,4 @@
-;===- ./lib/Target/Mips/LLVMBuild.txt --------------------------*- Conf -*--===;
+;===- ./lib/Target/Mips/AsmParser/LLVMBuild.txt ----------------*- Conf -*--===;
;
; The LLVM Compiler Infrastructure
;
@@ -15,19 +15,9 @@
;
;===------------------------------------------------------------------------===;
-[common]
-subdirectories = InstPrinter MCTargetDesc TargetInfo
-
[component_0]
-type = TargetGroup
-name = Mips
-parent = Target
-has_asmprinter = 1
-has_jit = 1
-
-[component_1]
type = Library
-name = MipsCodeGen
+name = MipsAsmParser
parent = Mips
-required_libraries = AsmPrinter CodeGen Core MC MipsAsmPrinter MipsDesc MipsInfo SelectionDAG Support Target
+required_libraries = MC MCParser Support MipsDesc MipsInfo
add_to_library_groups = Mips
Added: llvm/trunk/lib/Target/Mips/AsmParser/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/AsmParser/Makefile?rev=147923&view=auto
==============================================================================
--- llvm/trunk/lib/Target/Mips/AsmParser/Makefile (added)
+++ llvm/trunk/lib/Target/Mips/AsmParser/Makefile Tue Jan 10 21:56:41 2012
@@ -0,0 +1,15 @@
+##===- lib/Target/Mips/AsmParser/Makefile ------------------*- Makefile -*-===##
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+LEVEL = ../../../..
+LIBRARYNAME = LLVMMipsAsmParser
+
+# Hack: we need to include 'main' mips target directory to grab private headers
+CPP.Flags += -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
+
+include $(LEVEL)/Makefile.common
Added: llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp?rev=147923&view=auto
==============================================================================
--- llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (added)
+++ llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp Tue Jan 10 21:56:41 2012
@@ -0,0 +1,66 @@
+//===-- MipsAsmParser.cpp - Parse Mips assembly to MCInst instructions ----===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "MCTargetDesc/MipsMCTargetDesc.h"
+#include "llvm/MC/MCParser/MCAsmLexer.h"
+#include "llvm/MC/MCTargetAsmParser.h"
+#include "llvm/Support/TargetRegistry.h"
+
+using namespace llvm;
+
+namespace {
+class MipsAsmParser : public MCTargetAsmParser {
+ bool MatchAndEmitInstruction(SMLoc IDLoc,
+ SmallVectorImpl<MCParsedAsmOperand*> &Operands,
+ MCStreamer &Out);
+
+ bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc);
+
+ bool ParseInstruction(StringRef Name, SMLoc NameLoc,
+ SmallVectorImpl<MCParsedAsmOperand*> &Operands);
+
+ bool ParseDirective(AsmToken DirectiveID);
+
+public:
+ MipsAsmParser(MCSubtargetInfo &sti, MCAsmParser &parser)
+ : MCTargetAsmParser() {
+ }
+
+};
+}
+
+bool MipsAsmParser::
+MatchAndEmitInstruction(SMLoc IDLoc,
+ SmallVectorImpl<MCParsedAsmOperand*> &Operands,
+ MCStreamer &Out) {
+ return true;
+}
+
+bool MipsAsmParser::
+ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) {
+ return true;
+}
+
+bool MipsAsmParser::
+ParseInstruction(StringRef Name, SMLoc NameLoc,
+ SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
+ return true;
+}
+
+bool MipsAsmParser::
+ParseDirective(AsmToken DirectiveID) {
+ return true;
+}
+
+extern "C" void LLVMInitializeMipsAsmParser() {
+ RegisterMCAsmParser<MipsAsmParser> X(TheMipsTarget);
+ RegisterMCAsmParser<MipsAsmParser> Y(TheMipselTarget);
+ RegisterMCAsmParser<MipsAsmParser> A(TheMips64Target);
+ RegisterMCAsmParser<MipsAsmParser> B(TheMips64elTarget);
+}
Modified: llvm/trunk/lib/Target/Mips/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/CMakeLists.txt?rev=147923&r1=147922&r2=147923&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/CMakeLists.txt (original)
+++ llvm/trunk/lib/Target/Mips/CMakeLists.txt Tue Jan 10 21:56:41 2012
@@ -33,3 +33,4 @@
add_subdirectory(InstPrinter)
add_subdirectory(TargetInfo)
add_subdirectory(MCTargetDesc)
+add_subdirectory(AsmParser)
Modified: llvm/trunk/lib/Target/Mips/LLVMBuild.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/LLVMBuild.txt?rev=147923&r1=147922&r2=147923&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/LLVMBuild.txt (original)
+++ llvm/trunk/lib/Target/Mips/LLVMBuild.txt Tue Jan 10 21:56:41 2012
@@ -16,12 +16,13 @@
;===------------------------------------------------------------------------===;
[common]
-subdirectories = InstPrinter MCTargetDesc TargetInfo
+subdirectories = AsmParser InstPrinter MCTargetDesc TargetInfo
[component_0]
type = TargetGroup
name = Mips
parent = Target
+has_asmparser = 1
has_asmprinter = 1
has_jit = 1
Modified: llvm/trunk/lib/Target/Mips/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Makefile?rev=147923&r1=147922&r2=147923&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Makefile (original)
+++ llvm/trunk/lib/Target/Mips/Makefile Tue Jan 10 21:56:41 2012
@@ -17,7 +17,7 @@
MipsGenDAGISel.inc MipsGenCallingConv.inc \
MipsGenSubtargetInfo.inc MipsGenMCCodeEmitter.inc
-DIRS = InstPrinter TargetInfo MCTargetDesc
+DIRS = InstPrinter AsmParser TargetInfo MCTargetDesc
include $(LEVEL)/Makefile.common
Added: llvm/trunk/test/MC/Mips/elf_basic.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Mips/elf_basic.s?rev=147923&view=auto
==============================================================================
--- llvm/trunk/test/MC/Mips/elf_basic.s (added)
+++ llvm/trunk/test/MC/Mips/elf_basic.s Tue Jan 10 21:56:41 2012
@@ -0,0 +1,5 @@
+; RUN: llc -filetype=obj -mtriple mipsel-unknown-linux %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=CHECK-LE %s
+
+; Check that we produce the correct endian.
+
+; CHECK-LE: ('e_indent[EI_DATA]', 0x01)
More information about the llvm-commits
mailing list