From 1c78ca6a09cec862d6aad04e820dae98b71be9fc Mon Sep 17 00:00:00 2001 From: Vasileios Kalintiris Date: Tue, 11 Aug 2015 08:56:25 +0000 Subject: [mips] Remap move as or. Summary: This patch remaps the assembly idiom 'move' to 'or' instead of 'daddu' or 'addu'. The use of addu/daddu instead of or as move was highlighted as a performance issue during the analysis of a recent 64bit design. Originally move was encoded as 'or' by binutils but was changed for the r10k cpu family due to their pipeline which had 2 arithmetic units and a single logical unit, and so could issue multiple (d)addu based moves at the same time but only 1 logical move. This patch preserves the disassembly behaviour so that disassembling a old style (d)addu move still appears as move, but assembling move always gives an or Patch by Simon Dardis. Reviewers: vkalintiris Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11796 llvm-svn: 244579 --- llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'llvm/test/MC/Disassembler/Mips/mips32r2') diff --git a/llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt b/llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt index d0138475290..80615b889fc 100644 --- a/llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt +++ b/llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt @@ -17,6 +17,8 @@ 0x00 0x65 0x18 0x2a # CHECK: slt $3, $3, $5 0x00 0x65 0x18 0x2b # CHECK: sltu $3, $3, $5 0x00 0x65 0x20 0x23 # CHECK: subu $4, $3, $5 +0x00 0x80 0xf0 0x21 # CHECK: move $fp, $4 +0x00 0x80 0xf0 0x25 # CHECK: move $fp, $4 0x00 0x80 0xfc 0x09 # CHECK: jalr.hb $4 0x00 0xa0 0x24 0x09 # CHECK: jalr.hb $4, $5 0x00 0xa3 0x10 0x04 # CHECK: sllv $2, $3, $5 -- cgit v1.2.3