llvm-6502/test/CodeGen/Mips/return_address.ll
Akira Hatanaka 68fe665b9a [mips] Use "or $r0, $r1, $zero" instead of "addu $r0, $zero, $r1" to copy
physical register $r1 to $r0.

GNU disassembler recognizes an "or" instruction as a "move", and this change
makes the disassembled code easier to read.

Original patch by Reed Kotler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170655 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-20 04:06:06 +00:00

24 lines
457 B
LLVM

; RUN: llc -march=mipsel < %s | FileCheck %s
define i8* @f1() nounwind {
entry:
%0 = call i8* @llvm.returnaddress(i32 0)
ret i8* %0
; CHECK: or $2, $ra, $zero
}
define i8* @f2() nounwind {
entry:
call void @g()
%0 = call i8* @llvm.returnaddress(i32 0)
ret i8* %0
; CHECK: or $[[R0:[0-9]+]], $ra, $zero
; CHECK: jal
; CHECK: or $2, $[[R0]], $zero
}
declare i8* @llvm.returnaddress(i32) nounwind readnone
declare void @g()