[mips][microMIPS] MicroMIPS 16-bit unconditional branch instruction B
authorJozef Kolek <jozef.kolek@imgtec.com>
Tue, 20 Jan 2015 16:45:27 +0000 (16:45 +0000)
committerJozef Kolek <jozef.kolek@imgtec.com>
Tue, 20 Jan 2015 16:45:27 +0000 (16:45 +0000)
commit617b574ffb795221bdd4fa9c54b817c267acb4bf
treefc7cf782e7246090a1a26019098380b18d07c8e4
parentfa4d8baf54df7df9bb760dbad53a03a8d17d2a8e
[mips][microMIPS] MicroMIPS 16-bit unconditional branch instruction B

Implement microMIPS 16-bit unconditional branch instruction B.

Implemented 16-bit microMIPS unconditional instruction has real name B16, and
B is an alias which expands to either B16 or BEQ according to the rules:
b 256 --> b16 256 # R_MICROMIPS_PC10_S1
b 12256 --> beq $zero, $zero, 12256 # R_MICROMIPS_PC16_S1
b label --> beq $zero, $zero, label # R_MICROMIPS_PC16_S1

Differential Revision: http://reviews.llvm.org/D3514

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226577 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
lib/Target/Mips/AsmParser/MipsAsmParser.cpp
lib/Target/Mips/Disassembler/MipsDisassembler.cpp
lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h
lib/Target/Mips/MicroMipsInstrFormats.td
lib/Target/Mips/MicroMipsInstrInfo.td
lib/Target/Mips/MipsInstrInfo.td
test/MC/Disassembler/Mips/micromips.txt
test/MC/Disassembler/Mips/micromips_le.txt
test/MC/Mips/micromips-16-bit-instructions.s
test/MC/Mips/micromips-branch-fixup.s [new file with mode: 0644]
test/MC/Mips/micromips-branch-instructions.s
test/MC/Mips/micromips-diagnostic-fixup.s