mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
target/arm: Convert Synchronization primitives
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20190904193059.26202-22-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
5e291fe168
commit
1efdd407a2
3 changed files with 412 additions and 258 deletions
|
@ -39,6 +39,8 @@
|
|||
&mrs_bank rd r sysm
|
||||
&ldst_rr p w u rn rt rm shimm shtype
|
||||
&ldst_ri p w u rn rt imm
|
||||
&strex rn rd rt rt2 imm
|
||||
&ldrex rn rt rt2 imm
|
||||
|
||||
# Data-processing (register)
|
||||
|
||||
|
@ -342,3 +344,49 @@ STRT_ri .... 010. .0.0 .... .... ............ @ldst_ri12_p0w1
|
|||
STRBT_ri .... 010. .1.0 .... .... ............ @ldst_ri12_p0w1
|
||||
LDRT_ri .... 010. .0.1 .... .... ............ @ldst_ri12_p0w1
|
||||
LDRBT_ri .... 010. .1.1 .... .... ............ @ldst_ri12_p0w1
|
||||
|
||||
# Synchronization primitives
|
||||
|
||||
@swp ---- .... .... rn:4 rt:4 .... .... rt2:4
|
||||
|
||||
SWP .... 0001 0000 .... .... 0000 1001 .... @swp
|
||||
SWPB .... 0001 0100 .... .... 0000 1001 .... @swp
|
||||
|
||||
# Load/Store Exclusive and Load-Acquire/Store-Release
|
||||
#
|
||||
# Note rt2 for STREXD/LDREXD is set by the helper after checking rt is even.
|
||||
|
||||
@strex ---- .... .... rn:4 rd:4 .... .... rt:4 \
|
||||
&strex imm=0 rt2=15
|
||||
@ldrex ---- .... .... rn:4 rt:4 .... .... .... \
|
||||
&ldrex imm=0 rt2=15
|
||||
@stl ---- .... .... rn:4 .... .... .... rt:4 \
|
||||
&ldrex imm=0 rt2=15
|
||||
|
||||
STREX .... 0001 1000 .... .... 1111 1001 .... @strex
|
||||
STREXD_a32 .... 0001 1010 .... .... 1111 1001 .... @strex
|
||||
STREXB .... 0001 1100 .... .... 1111 1001 .... @strex
|
||||
STREXH .... 0001 1110 .... .... 1111 1001 .... @strex
|
||||
|
||||
STLEX .... 0001 1000 .... .... 1110 1001 .... @strex
|
||||
STLEXD_a32 .... 0001 1010 .... .... 1110 1001 .... @strex
|
||||
STLEXB .... 0001 1100 .... .... 1110 1001 .... @strex
|
||||
STLEXH .... 0001 1110 .... .... 1110 1001 .... @strex
|
||||
|
||||
STL .... 0001 1000 .... 1111 1100 1001 .... @stl
|
||||
STLB .... 0001 1100 .... 1111 1100 1001 .... @stl
|
||||
STLH .... 0001 1110 .... 1111 1100 1001 .... @stl
|
||||
|
||||
LDREX .... 0001 1001 .... .... 1111 1001 1111 @ldrex
|
||||
LDREXD_a32 .... 0001 1011 .... .... 1111 1001 1111 @ldrex
|
||||
LDREXB .... 0001 1101 .... .... 1111 1001 1111 @ldrex
|
||||
LDREXH .... 0001 1111 .... .... 1111 1001 1111 @ldrex
|
||||
|
||||
LDAEX .... 0001 1001 .... .... 1110 1001 1111 @ldrex
|
||||
LDAEXD_a32 .... 0001 1011 .... .... 1110 1001 1111 @ldrex
|
||||
LDAEXB .... 0001 1101 .... .... 1110 1001 1111 @ldrex
|
||||
LDAEXH .... 0001 1111 .... .... 1110 1001 1111 @ldrex
|
||||
|
||||
LDA .... 0001 1001 .... .... 1100 1001 1111 @ldrex
|
||||
LDAB .... 0001 1101 .... .... 1100 1001 1111 @ldrex
|
||||
LDAH .... 0001 1111 .... .... 1100 1001 1111 @ldrex
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue