mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 22:58:50 +00:00
1beaaa8211
Summary: GetTarget() may modify TripleName without also updating TheTriple. This can lead to situations where the MCObjectStreamer has a different triple to the rest of LLVM. This inconsistency caused sparc-little-endian.s to pass on Windows because most of LLVM had sparcel-pc-win32 while MCObjectStreamer had "". I believe the same kind of thing was also true of Darwin. Reviewers: rengolin Reviewed By: rengolin Subscribers: llvm-commits, rengolin, rafael Differential Revision: http://reviews.llvm.org/D10450 llvm-svn: 239808
19 lines
714 B
ArmAsm
19 lines
714 B
ArmAsm
! RUN: llvm-mc %s -triple=sparcel-linux-gnu -show-encoding | FileCheck %s
|
|
! RUN: llvm-mc -triple=sparcel-linux-gnu -filetype=obj < %s | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-OBJ
|
|
|
|
! CHECK-OBJ: .text:
|
|
.BB0:
|
|
|
|
! Ensure instructions are emitted in reversed byte order:
|
|
|
|
! CHECK: call %g1 ! encoding: [0x00,0x40,0xc0,0x9f]
|
|
! CHECK-OBJ: 0: 00 40 c0 9f call %g1
|
|
call %g1
|
|
|
|
! ...and that fixups are applied to the correct bytes.
|
|
|
|
! CHECK: ba .BB0 ! encoding: [A,A,0b10AAAAAA,0x10]
|
|
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
|
! CHECK-OBJ: 4: ff ff bf 10 ba 4194303
|
|
ba .BB0
|