mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
disas/libvixl: Update to upstream VIXL 1.5
Update our copy of libvixl to upstream's 1.5 release.
This includes the upstream versions of the fixes we
were carrying locally (commit ffebe899
).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1407162987-4659-1-git-send-email-peter.maydell@linaro.org
This commit is contained in:
parent
d9aa688557
commit
508280f566
13 changed files with 561 additions and 96 deletions
|
@ -46,13 +46,13 @@ R(24) R(25) R(26) R(27) R(28) R(29) R(30) R(31)
|
|||
|
||||
#define INSTRUCTION_FIELDS_LIST(V_) \
|
||||
/* Register fields */ \
|
||||
V_(Rd, 4, 0, Bits) /* Destination register. */ \
|
||||
V_(Rn, 9, 5, Bits) /* First source register. */ \
|
||||
V_(Rm, 20, 16, Bits) /* Second source register. */ \
|
||||
V_(Ra, 14, 10, Bits) /* Third source register. */ \
|
||||
V_(Rt, 4, 0, Bits) /* Load dest / store source. */ \
|
||||
V_(Rt2, 14, 10, Bits) /* Load second dest / */ \
|
||||
/* store second source. */ \
|
||||
V_(Rd, 4, 0, Bits) /* Destination register. */ \
|
||||
V_(Rn, 9, 5, Bits) /* First source register. */ \
|
||||
V_(Rm, 20, 16, Bits) /* Second source register. */ \
|
||||
V_(Ra, 14, 10, Bits) /* Third source register. */ \
|
||||
V_(Rt, 4, 0, Bits) /* Load/store register. */ \
|
||||
V_(Rt2, 14, 10, Bits) /* Load/store second register. */ \
|
||||
V_(Rs, 20, 16, Bits) /* Exclusive access status. */ \
|
||||
V_(PrefetchMode, 4, 0, Bits) \
|
||||
\
|
||||
/* Common bits */ \
|
||||
|
@ -126,6 +126,13 @@ V_(SysOp1, 18, 16, Bits) \
|
|||
V_(SysOp2, 7, 5, Bits) \
|
||||
V_(CRn, 15, 12, Bits) \
|
||||
V_(CRm, 11, 8, Bits) \
|
||||
\
|
||||
/* Load-/store-exclusive */ \
|
||||
V_(LdStXLoad, 22, 22, Bits) \
|
||||
V_(LdStXNotExclusive, 23, 23, Bits) \
|
||||
V_(LdStXAcquireRelease, 15, 15, Bits) \
|
||||
V_(LdStXSizeLog2, 31, 30, Bits) \
|
||||
V_(LdStXPair, 21, 21, Bits) \
|
||||
|
||||
|
||||
#define SYSTEM_REGISTER_FIELDS_LIST(V_, M_) \
|
||||
|
@ -585,6 +592,13 @@ enum MemBarrierOp {
|
|||
ISB = MemBarrierFixed | 0x00000040
|
||||
};
|
||||
|
||||
enum SystemExclusiveMonitorOp {
|
||||
SystemExclusiveMonitorFixed = 0xD503305F,
|
||||
SystemExclusiveMonitorFMask = 0xFFFFF0FF,
|
||||
SystemExclusiveMonitorMask = 0xFFFFF0FF,
|
||||
CLREX = SystemExclusiveMonitorFixed
|
||||
};
|
||||
|
||||
// Any load or store.
|
||||
enum LoadStoreAnyOp {
|
||||
LoadStoreAnyFMask = 0x0a000000,
|
||||
|
@ -702,7 +716,7 @@ enum LoadStoreUnscaledOffsetOp {
|
|||
|
||||
// Load/store (post, pre, offset and unsigned.)
|
||||
enum LoadStoreOp {
|
||||
LoadStoreOpMask = 0xC4C00000,
|
||||
LoadStoreOpMask = 0xC4C00000,
|
||||
#define LOAD_STORE(A, B, C, D) \
|
||||
A##B##_##C = D
|
||||
LOAD_STORE_OP_LIST(LOAD_STORE),
|
||||
|
@ -756,6 +770,44 @@ enum LoadStoreRegisterOffset {
|
|||
#undef LOAD_STORE_REGISTER_OFFSET
|
||||
};
|
||||
|
||||
enum LoadStoreExclusive {
|
||||
LoadStoreExclusiveFixed = 0x08000000,
|
||||
LoadStoreExclusiveFMask = 0x3F000000,
|
||||
LoadStoreExclusiveMask = 0xFFE08000,
|
||||
STXRB_w = LoadStoreExclusiveFixed | 0x00000000,
|
||||
STXRH_w = LoadStoreExclusiveFixed | 0x40000000,
|
||||
STXR_w = LoadStoreExclusiveFixed | 0x80000000,
|
||||
STXR_x = LoadStoreExclusiveFixed | 0xC0000000,
|
||||
LDXRB_w = LoadStoreExclusiveFixed | 0x00400000,
|
||||
LDXRH_w = LoadStoreExclusiveFixed | 0x40400000,
|
||||
LDXR_w = LoadStoreExclusiveFixed | 0x80400000,
|
||||
LDXR_x = LoadStoreExclusiveFixed | 0xC0400000,
|
||||
STXP_w = LoadStoreExclusiveFixed | 0x80200000,
|
||||
STXP_x = LoadStoreExclusiveFixed | 0xC0200000,
|
||||
LDXP_w = LoadStoreExclusiveFixed | 0x80600000,
|
||||
LDXP_x = LoadStoreExclusiveFixed | 0xC0600000,
|
||||
STLXRB_w = LoadStoreExclusiveFixed | 0x00008000,
|
||||
STLXRH_w = LoadStoreExclusiveFixed | 0x40008000,
|
||||
STLXR_w = LoadStoreExclusiveFixed | 0x80008000,
|
||||
STLXR_x = LoadStoreExclusiveFixed | 0xC0008000,
|
||||
LDAXRB_w = LoadStoreExclusiveFixed | 0x00408000,
|
||||
LDAXRH_w = LoadStoreExclusiveFixed | 0x40408000,
|
||||
LDAXR_w = LoadStoreExclusiveFixed | 0x80408000,
|
||||
LDAXR_x = LoadStoreExclusiveFixed | 0xC0408000,
|
||||
STLXP_w = LoadStoreExclusiveFixed | 0x80208000,
|
||||
STLXP_x = LoadStoreExclusiveFixed | 0xC0208000,
|
||||
LDAXP_w = LoadStoreExclusiveFixed | 0x80608000,
|
||||
LDAXP_x = LoadStoreExclusiveFixed | 0xC0608000,
|
||||
STLRB_w = LoadStoreExclusiveFixed | 0x00808000,
|
||||
STLRH_w = LoadStoreExclusiveFixed | 0x40808000,
|
||||
STLR_w = LoadStoreExclusiveFixed | 0x80808000,
|
||||
STLR_x = LoadStoreExclusiveFixed | 0xC0808000,
|
||||
LDARB_w = LoadStoreExclusiveFixed | 0x00C08000,
|
||||
LDARH_w = LoadStoreExclusiveFixed | 0x40C08000,
|
||||
LDAR_w = LoadStoreExclusiveFixed | 0x80C08000,
|
||||
LDAR_x = LoadStoreExclusiveFixed | 0xC0C08000
|
||||
};
|
||||
|
||||
// Conditional compare.
|
||||
enum ConditionalCompareOp {
|
||||
ConditionalCompareMask = 0x60000000,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue