Errata fixes for various errata in different versions of the Leon variants of the Sparc 32 bit processor. The nature of the errata are listed in the comments preceding the errata fix passes. Relevant unit tests are implemented for each of these. Note: Running clang-format has changed a few other lines too, unrelated to the implemented errata fixes. These have been left in as this keeps the code formatting consistent. Differential Revision: http://reviews.llvm.org/D21960 llvm-svn: 274856
21 lines
688 B
LLVM
21 lines
688 B
LLVM
; RUN: llc %s -O0 -march=sparc -mcpu=at697e -o - | FileCheck %s -check-prefix=FIXCALL
|
|
; RUN: llc %s -O0 -march=sparc -mcpu=leon2 -mattr=+fixcall -o - | FileCheck %s -check-prefix=FIXCALL
|
|
|
|
; RUN: llc %s -O0 -march=sparc -mcpu=at697e -mattr=-fixcall -o - | FileCheck %s -check-prefix=NO_FIXCALL
|
|
; RUN: llc %s -O0 -march=sparc -mcpu=leon2 -o - | FileCheck %s -check-prefix=NO_FIXCALL
|
|
|
|
|
|
; FIXCALL-LABEL: immediate_call_test
|
|
; FIXCALL: call 763288
|
|
|
|
; NO_FIXCALL-LABEL: immediate_call_test
|
|
; NO_FIXCALL: call 2047583640
|
|
define void @immediate_call_test() nounwind {
|
|
entry:
|
|
call void asm sideeffect "call $0", "i"(i32 2047583640) nounwind
|
|
ret void
|
|
}
|
|
|
|
|
|
|