mirror of https://gitee.com/openkylin/qemu.git
target/xtensa fixes for v4.0:
- fix translation of FLIX bundles with multiple references to the same register; - don't announce exit simcall; - clean up tests/tcg/xtensa. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEK2eFS5jlMn3N6xfYUfnMkfg/oEQFAlyaaGMTHGpjbXZia2Jj QGdtYWlsLmNvbQAKCRBR+cyR+D+gRA71D/9dfewtkj00YS03zu60aEv6qFR/K/BQ QEHGDF2Hsk6xO1zfZrJa8iwiMj5pVt7NkBEiE4cj5YG+JJliIxhgm5uSZ0WLd4qi 9ljanUZZ1dCFWCOC5/v6dAywQu4RncOKjhyRntJuCUjuGzn9XhfI9nwDGafuzAal ocl30P2rNU4QBeTNGCNsfZuqem4+dbNywt5r2RH0Fa+jSac4olxjpFHugX9ZiV2l kvBCvXbtAY/QCvB2wF1W1ekPCn7i5C5WcrWv4c5ePJTUHYC2s1U7ai/fN73tRsZH 10V6uhqESlxTQzOmvgO/vZ1Z/q4NUDfJ7igxeQZu9PYogVv9lO4zsMJFV+i1VFK+ idpCvw6yt6FVuKLNH9UHluBlvMEaUFddJhq7N9tOI/ENDK8/V2MgdzxHt5ETUoga tAP2gNwgwOX8EQ96uYz8QTaDqObfOf5hTzRXE820YR3O9ix2wbPTIeyUueacf6+B k4RaB+ec0vcR+Hp7Uymni2Mi5ca9hwmIb5l0184s/UnFsQRrpvurSlRleoamsS2t Fnxyr2b/fZ3v1QIz8+aU2TH4tmddGO1yDW3xNuEa3RPy37ONzMgcq8TTugYx3P0X RO+LJriK0A6Z8UaXVGPLL9ZDuT+LzDP1qd31bkjcbYHDEiMKs8wCAX1LzyukU+m2 uyg4GazIPvWm/w== =A2f1 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/xtensa/tags/20190326-xtensa' into staging target/xtensa fixes for v4.0: - fix translation of FLIX bundles with multiple references to the same register; - don't announce exit simcall; - clean up tests/tcg/xtensa. # gpg: Signature made Tue 26 Mar 2019 17:58:59 GMT # gpg: using RSA key 2B67854B98E5327DCDEB17D851F9CC91F83FA044 # gpg: issuer "jcmvbkbc@gmail.com" # gpg: Good signature from "Max Filippov <filippov@cadence.com>" [unknown] # gpg: aka "Max Filippov <max.filippov@cogentembedded.com>" [full] # gpg: aka "Max Filippov <jcmvbkbc@gmail.com>" [full] # Primary key fingerprint: 2B67 854B 98E5 327D CDEB 17D8 51F9 CC91 F83F A044 * remotes/xtensa/tags/20190326-xtensa: tests/tcg/xtensa: clean up test set target/xtensa: don't announce exit simcall target/xtensa: fix break_dependency for repeated resources Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
2fc8d6f8e4
|
@ -1041,7 +1041,6 @@ static bool break_dependency(struct slot_prop *a,
|
||||||
copy[n].resource = b->in[j].resource;
|
copy[n].resource = b->in[j].resource;
|
||||||
copy[n].arg = b->arg + index;
|
copy[n].arg = b->arg + index;
|
||||||
++n;
|
++n;
|
||||||
++i;
|
|
||||||
++j;
|
++j;
|
||||||
rv = true;
|
rv = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,7 +202,6 @@ void HELPER(simcall)(CPUXtensaState *env)
|
||||||
|
|
||||||
switch (regs[2]) {
|
switch (regs[2]) {
|
||||||
case TARGET_SYS_exit:
|
case TARGET_SYS_exit:
|
||||||
qemu_log("exit(%d) simcall\n", regs[3]);
|
|
||||||
exit(regs[3]);
|
exit(regs[3]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ XTENSA_SRC = $(SRC_PATH)/tests/tcg/xtensa
|
||||||
XTENSA_ALL = $(filter-out $(XTENSA_SRC)/linker.ld.S,$(wildcard $(XTENSA_SRC)/*.S))
|
XTENSA_ALL = $(filter-out $(XTENSA_SRC)/linker.ld.S,$(wildcard $(XTENSA_SRC)/*.S))
|
||||||
XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL))
|
XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL))
|
||||||
# Filter out common blobs and broken tests
|
# Filter out common blobs and broken tests
|
||||||
XTENSA_BROKEN_TESTS = crt vectors test_boolean test_pipeline test_fail
|
XTENSA_BROKEN_TESTS = crt vectors
|
||||||
XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS))
|
XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS))
|
||||||
|
|
||||||
# add to the list of tests
|
# add to the list of tests
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
#include "macros.inc"
|
|
||||||
|
|
||||||
test_suite fail
|
|
||||||
|
|
||||||
test fail
|
|
||||||
test_fail
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test_suite_end
|
|
|
@ -55,6 +55,23 @@ test sum
|
||||||
.previous
|
.previous
|
||||||
test_end
|
test_end
|
||||||
|
|
||||||
|
test rep_dependency
|
||||||
|
|
||||||
|
{
|
||||||
|
movi a2, 1
|
||||||
|
movi a3, 2
|
||||||
|
nop
|
||||||
|
}
|
||||||
|
{
|
||||||
|
or a2, a3, a3
|
||||||
|
or a3, a2, a2
|
||||||
|
nop
|
||||||
|
}
|
||||||
|
assert eqi, a2, 2
|
||||||
|
assert eqi, a3, 1
|
||||||
|
|
||||||
|
test_end
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
test_suite_end
|
test_suite_end
|
||||||
|
|
|
@ -1,157 +0,0 @@
|
||||||
#include "macros.inc"
|
|
||||||
|
|
||||||
.purgem test
|
|
||||||
.macro test name
|
|
||||||
movi a2, 1f
|
|
||||||
movi a3, 99f
|
|
||||||
0:
|
|
||||||
ipf a2, 0
|
|
||||||
ipf a2, 4
|
|
||||||
ipf a2, 8
|
|
||||||
ipf a2, 12
|
|
||||||
addi a2, a2, 16
|
|
||||||
blt a2, a3, 0b
|
|
||||||
j 1f
|
|
||||||
.align 4
|
|
||||||
1:
|
|
||||||
.endm
|
|
||||||
|
|
||||||
test_suite pipeline
|
|
||||||
|
|
||||||
test register_no_stall
|
|
||||||
rsr a3, ccount
|
|
||||||
add a5, a6, a6
|
|
||||||
add a6, a5, a5
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 3
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test register_stall
|
|
||||||
l32i a5, a1, 0 /* data cache preload */
|
|
||||||
nop
|
|
||||||
rsr a3, ccount
|
|
||||||
l32i a5, a1, 0
|
|
||||||
add a6, a5, a5 /* M-to-E interlock */
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test j0_stall
|
|
||||||
rsr a3, ccount
|
|
||||||
j 1f /* E + 2-cycle penalty */
|
|
||||||
1:
|
|
||||||
rsr a4, ccount /* E */
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test j1_stall
|
|
||||||
rsr a3, ccount
|
|
||||||
j 1f
|
|
||||||
nop
|
|
||||||
1:
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test j5_stall
|
|
||||||
rsr a3, ccount
|
|
||||||
j 1f
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
1:
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test b_no_stall
|
|
||||||
movi a5, 1
|
|
||||||
rsr a3, ccount
|
|
||||||
beqi a5, 2, 1f
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 2
|
|
||||||
1:
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test b1_stall
|
|
||||||
movi a5, 1
|
|
||||||
rsr a3, ccount
|
|
||||||
beqi a5, 1, 1f
|
|
||||||
nop
|
|
||||||
1:
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test b5_stall
|
|
||||||
movi a5, 1
|
|
||||||
rsr a3, ccount
|
|
||||||
beqi a5, 1, 1f
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
1:
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
/* PS *SYNC */
|
|
||||||
|
|
||||||
test ps_dsync
|
|
||||||
rsr a5, ps
|
|
||||||
isync
|
|
||||||
rsr a3, ccount
|
|
||||||
wsr a5, ps
|
|
||||||
dsync
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 5
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test ps_esync
|
|
||||||
rsr a5, ps
|
|
||||||
isync
|
|
||||||
rsr a3, ccount
|
|
||||||
wsr a5, ps
|
|
||||||
esync
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 5
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test ps_rsync
|
|
||||||
rsr a5, ps
|
|
||||||
isync
|
|
||||||
rsr a3, ccount
|
|
||||||
wsr a5, ps
|
|
||||||
rsync
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
assert eqi, a3, 5
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test ps_isync
|
|
||||||
rsr a5, ps
|
|
||||||
isync
|
|
||||||
rsr a3, ccount
|
|
||||||
wsr a5, ps
|
|
||||||
isync
|
|
||||||
rsr a4, ccount
|
|
||||||
sub a3, a4, a3
|
|
||||||
movi a4, 9
|
|
||||||
assert eq, a3, a4
|
|
||||||
test_end
|
|
||||||
|
|
||||||
test_suite_end
|
|
Loading…
Reference in New Issue