llvm-mirror/test/MC/Sparc/sparc-little-endian.s
Daniel Sanders 1beaaa8211 [llvm-mc] The object form of the GNU triple should be the same as the string form.
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
2015-06-16 09:57:38 +00:00

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