Skip to content

Commit

Permalink
[mips] Mark microMIPS64 as being unsupported.
Browse files Browse the repository at this point in the history
There are no provided instruction definitions for this architecture.

Reviewers: smaksimovic, atanasyan, abeserminji

Differential Revision: https://reviews.llvm.org/D48320

llvm-svn: 335057
  • Loading branch information
Simon Dardis committed Jun 19, 2018
1 parent 6b8fa63 commit af38a8f
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 53 deletions.
3 changes: 3 additions & 0 deletions llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Expand Up @@ -521,6 +521,9 @@ class MipsAsmParser : public MCTargetAsmParser {

if (getSTI().getCPU() == "mips64r6" && inMicroMipsMode())
report_fatal_error("microMIPS64R6 is not supported", false);

if (!isABI_O32() && inMicroMipsMode())
report_fatal_error("microMIPS64 is not supported", false);
}

/// True if all of $fcc0 - $fcc7 exist for the current ISA.
Expand Down
2 changes: 2 additions & 0 deletions llvm/lib/Target/Mips/MipsSubtarget.cpp
Expand Up @@ -116,6 +116,8 @@ MipsSubtarget::MipsSubtarget(const Triple &TT, StringRef CPU, StringRef FS,
if (hasMips64r6() && InMicroMipsMode)
report_fatal_error("microMIPS64R6 is not supported", false);

if (!isABI_O32() && InMicroMipsMode)
report_fatal_error("microMIPS64 is not supported.", false);

if (UseIndirectJumpsHazard) {
if (InMicroMipsMode)
Expand Down
7 changes: 7 additions & 0 deletions llvm/test/CodeGen/Mips/micromips64-unsupported.ll
@@ -0,0 +1,7 @@
; RUN: not llc -mtriple=mips64-unknown-linux -mcpu=mips64r6 -mattr=+micromips %s 2>&1 | FileCheck %s --check-prefix=MICROMIPS64R6
; RUN: not llc -mtriple=mips64-unknown-linux -mcpu=mips64 -mattr=+micromips %s 2>&1 | FileCheck %s --check-prefix=MICROMIPS64

; Test that microMIPS64(R6) is not supported.

; MICROMIPS64R6: LLVM ERROR: microMIPS64R6 is not supported
; MICROMIPS64: LLVM ERROR: microMIPS64 is not supported
5 changes: 0 additions & 5 deletions llvm/test/CodeGen/Mips/micromips64r6-unsupported.ll

This file was deleted.

6 changes: 0 additions & 6 deletions llvm/test/MC/Mips/expansion-j-sym-pic.s
Expand Up @@ -10,12 +10,6 @@
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=micromips -show-encoding |\
# RUN: FileCheck %s -check-prefix=MICRO

# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 -mattr=micromips -show-encoding |\
# RUN: FileCheck %s -check-prefix=MICRO

# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 -mattr=micromips -show-encoding |\
# RUN: FileCheck %s -check-prefix=MICRO

# Repeat the tests using ELF output.

# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -filetype=obj | \
Expand Down
42 changes: 0 additions & 42 deletions llvm/test/MC/Mips/expansion-jal-sym-pic.s
Expand Up @@ -10,12 +10,6 @@
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=micromips -show-encoding |\
# RUN: FileCheck %s -check-prefixes=ALL,MM,O32-MM

# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 -mattr=micromips -show-encoding |\
# RUN: FileCheck %s -check-prefixes=ALL,MM,N32-MM

# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 -mattr=micromips -show-encoding |\
# RUN: FileCheck %s -check-prefixes=ALL,MM,N64-MM

# Repeat the tests but using ELF output. An initial version of this patch did
# this as the output different depending on whether it went through
# MCAsmStreamer or MCELFStreamer. This ensures that the assembly expansion and
Expand Down Expand Up @@ -68,12 +62,6 @@ local_label:
# O32-MM: addiu $25, $25, %lo(local_label) # encoding: [0x33,0x39,A,A]
# O32-MM: # fixup A - offset: 0, value: %lo(local_label), kind: fixup_MICROMIPS_LO16

# N32-MM: lw $25, %got_disp(local_label)($gp) # encoding: [0xff,0x3c,A,A]
# N32-MM: # fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_MICROMIPS_GOT_DISP

# N64-MM: ld $25, %got_disp(local_label)($gp) # encoding: [0xdf,0x99,A,A]
# N64-MM: # fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_MICROMIPS_GOT_DISP

# MIPS: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MM: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
# ALL: nop # encoding: [0x00,0x00,0x00,0x00]
Expand Down Expand Up @@ -103,12 +91,6 @@ local_label:
# O32-MM: lw $25, %call16(weak_label)($gp) # encoding: [0xff,0x3c,A,A]
# O32-MM: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_MICROMIPS_CALL16

# N32-MM: lw $25, %call16(weak_label)($gp) # encoding: [0xff,0x3c,A,A]
# N32-MM: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_MICROMIPS_CALL16

# N64-MM: ld $25, %call16(weak_label)($gp) # encoding: [0xdf,0x99,A,A]
# N64-MM: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_MICROMIPS_CALL16

# MIPS: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MM: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
# ALL: nop # encoding: [0x00,0x00,0x00,0x00]
Expand Down Expand Up @@ -138,12 +120,6 @@ local_label:
# O32-MM: lw $25, %call16(global_label)($gp) # encoding: [0xff,0x3c,A,A]
# O32-MM: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16

# N32-MM: lw $25, %call16(global_label)($gp) # encoding: [0xff,0x3c,A,A]
# N32-MM: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16

# N64-MM: ld $25, %call16(global_label)($gp) # encoding: [0xdf,0x99,A,A]
# N64-MM: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16

# MIPS: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MM: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
# ALL: nop # encoding: [0x00,0x00,0x00,0x00]
Expand Down Expand Up @@ -175,12 +151,6 @@ local_label:
# O32-MM-NEXT: addiu $25, $25, %lo(.text) # encoding: [0x33,0x39,A,A]
# O32-MM-NEXT: # fixup A - offset: 0, value: %lo(.text), kind: fixup_MICROMIPS_LO16

# N32-MM: lw $25, %got_disp(.text)($gp) # encoding: [0xff,0x3c,A,A]
# N32-MM-NEXT: # fixup A - offset: 0, value: %got_disp(.text), kind: fixup_MICROMIPS_GOT_DISP

# N64-MM: ld $25, %got_disp(.text)($gp) # encoding: [0xdf,0x99,A,A]
# N64-MM-NEXT: # fixup A - offset: 0, value: %got_disp(.text), kind: fixup_MICROMIPS_GOT_DISP

# MIPS: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MM: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
# ALL: nop # encoding: [0x00,0x00,0x00,0x00]
Expand Down Expand Up @@ -217,12 +187,6 @@ local_label:
# O32-MM: addiu $25, $25, %lo($tmp0) # encoding: [0x33,0x39,A,A]
# O32-MM: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_MICROMIPS_LO16

# N32-MM: lw $25, %got_disp(.Ltmp0)($gp) # encoding: [0xff,0x3c,A,A]
# N32-MM: # fixup A - offset: 0, value: %got_disp(.Ltmp0), kind: fixup_MICROMIPS_GOT_DISP

# N64-MM: ld $25, %got_disp(.Ltmp0)($gp) # encoding: [0xdf,0x99,A,A]
# N64-MM: # fixup A - offset: 0, value: %got_disp(.Ltmp0), kind: fixup_MICROMIPS_GOT_DISP

# MIPS: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MM: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
# ALL: nop # encoding: [0x00,0x00,0x00,0x00]
Expand Down Expand Up @@ -259,12 +223,6 @@ local_label:
# O32-MM-FIXME: addiu $25, $25, %lo(forward_local) # encoding: [0x33,0x39,A,A]
# O32-MM-FIXME: # fixup A - offset: 0, value: %lo(forward_local), kind: fixup_MICROMIPS_LO16

# N32-MM-FIXME: lw $25, %got_disp(forward_local)($gp) # encoding: [0xff,0x3c,A,A]
# N32-MM-FIXME: # fixup A - offset: 0, value: %got_disp(forward_local), kind: fixup_MICROMIPS_GOT_DISP

# N64-MM-FIXME: ld $25, %got_disp(forward_local)($gp) # encoding: [0xdf,0x99,A,A]
# N64-MM-FIXME: # fixup A - offset: 0, value: %got_disp(forward_local), kind: fixup_MICROMIPS_GOT_DISP

# MIPS: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MM: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
# ALL: nop # encoding: [0x00,0x00,0x00,0x00]
Expand Down
8 changes: 8 additions & 0 deletions llvm/test/MC/Mips/micromips64-unsupported.s
@@ -0,0 +1,8 @@
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 -target-abi n64 2>&1 -mattr=+micromips | FileCheck %s --check-prefix=64R6
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 -target-abi n32 2>&1 -mattr=+micromips | FileCheck %s --check-prefix=64R6

# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 2>&1 -mattr=+micromips | FileCheck %s --check-prefix=64
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 2>&1 -mattr=+micromips | FileCheck %s --check-prefix=64

# 64R6: microMIPS64R6 is not supported
# 64: microMIPS64 is not supported

0 comments on commit af38a8f

Please sign in to comment.