Skip to content

Commit

Permalink
[AVR] Redefine the 'SBR' instruction as an alias
Browse files Browse the repository at this point in the history
This fixes a TableGen warning about duplicate bit patterns.

SBR
===

This is an alias of 'ORI Rd, K'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341277 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
dylanmckay committed Sep 1, 2018
1 parent dfd17d0 commit 777b95d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
17 changes: 8 additions & 9 deletions lib/Target/AVR/AVRInstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,14 @@ Defs = [SREG] in
// This operation is identical to a `Rd AND Rd`.
def : InstAlias<"tst\t$rd", (ANDRdRr GPR8:$rd, GPR8:$rd)>;

// SBR Rd, K
//
// Mnemonic alias to 'ORI Rd, K'. Same bit pattern, same operands,
// same everything.
def : InstAlias<"sbr\t$rd, $k",
(ORIRdK LD8:$rd, imm_ldi8:$k),
/* Disable display, so we don't override ORI */ 0>;

//===----------------------------------------------------------------------===//
// Jump instructions
//===----------------------------------------------------------------------===//
Expand Down Expand Up @@ -1730,15 +1738,6 @@ def BLD : FRdB<0b00,
let Constraints = "$src = $rd",
Defs = [SREG] in
{
// SBR Rd, K
// Alias for ORI Rd, K
def SBRRdK : FRdK<0b0110,
(outs LD8:$rd),
(ins LD8:$src, imm_ldi8:$k),
"sbr\t$rd, $k",
[(set i8:$rd, (or i8:$src, imm:$k)),
(implicit SREG)]>;

// CBR Rd, K
// Alias for `ANDI Rd, COM(K)` where COM(K) is the complement of K.
// FIXME: This uses the 'complement' encoder. We need it to also use the
Expand Down
10 changes: 5 additions & 5 deletions test/MC/AVR/inst-sbr.s
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ foo:

sbr r19, _start

; CHECK: sbr r17, 208 ; encoding: [0x10,0x6d]
; CHECK: sbr r24, 190 ; encoding: [0x8e,0x6b]
; CHECK: sbr r20, 173 ; encoding: [0x4d,0x6a]
; CHECK: sbr r31, 0 ; encoding: [0xf0,0x60]
; CHECK: ori r17, 208 ; encoding: [0x10,0x6d]
; CHECK: ori r24, 190 ; encoding: [0x8e,0x6b]
; CHECK: ori r20, 173 ; encoding: [0x4d,0x6a]
; CHECK: ori r31, 0 ; encoding: [0xf0,0x60]

; CHECK: sbr r19, _start ; encoding: [0x30'A',0x60]
; CHECK: ori r19, _start ; encoding: [0x30'A',0x60]
; CHECK: ; fixup A - offset: 0, value: _start, kind: fixup_ldi

0 comments on commit 777b95d

Please sign in to comment.