HomePhabricator

[mips] Fix JmpLink to texternalsym and tglobaladdr on mcroMIPS R6

Authored by atanasyan on Jul 11 2019, 9:58 PM.

Description

[mips] Fix JmpLink to texternalsym and tglobaladdr on mcroMIPS R6

There is not match for the MipsJmpLink texternalsym and `MipsJmpLink
tglobaladdr` patterns for microMIPS R6. As a result LLVM incorrectly
selects the JALRC16 compact 2-byte instruction which takes a target
instruction address from a register only and assign R_MIPS_32 relocation
for this instruction. This relocation completely overwrites JALRC16
and nearby instructions.

This patch adds missed matching patterns, selects BALC instruction and
assign a correct R_MICROMIPS_PC26_S1 relocation.

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

llvm-svn: 365870

Details