mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
e3cb6ccb12
Summary: The Sparc V9 membar instruction can enforce different types of memory orderings depending on the value in its immediate field. In the architectural manual the type is selected by combining different assembler tags into a mask. This patch adds support for these tags. Reviewers: jyknight, venkatra, brad Reviewed By: jyknight Subscribers: fedor.sergeev, jrtc27, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53491 llvm-svn: 349048
20 lines
854 B
ArmAsm
20 lines
854 B
ArmAsm
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
|
|
|
! CHECK: membar #LoadLoad | #StoreLoad | #LoadStore | #StoreStore ! encoding: [0x81,0x43,0xe0,0x0f]
|
|
membar 15
|
|
|
|
! CHECK: membar #LoadLoad ! encoding: [0x81,0x43,0xe0,0x01]
|
|
membar #LoadLoad
|
|
|
|
! CHECK: membar #LoadLoad | #StoreStore ! encoding: [0x81,0x43,0xe0,0x09]
|
|
membar #LoadLoad | #StoreStore
|
|
|
|
! CHECK: membar #LoadLoad | #StoreLoad | #LoadStore | #StoreStore | #Lookaside | #MemIssue | #Sync ! encoding: [0x81,0x43,0xe0,0x7f]
|
|
membar #LoadLoad | #StoreLoad | #LoadStore | #StoreStore | #Lookaside | #MemIssue | #Sync
|
|
|
|
! CHECK: cas [%i0], %l6, %o2 ! encoding: [0xd5,0xe6,0x10,0x16]
|
|
cas [%i0], %l6, %o2
|
|
|
|
! CHECK: casx [%i0], %l6, %o2 ! encoding: [0xd5,0xf6,0x10,0x16]
|
|
casx [%i0], %l6, %o2
|