[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 5d630c: target/xtensa: rework zero overhead l
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 5d630c: target/xtensa: rework zero overhead loops implemen... |
Date: |
Thu, 24 Jan 2019 02:05:34 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 5d630cef4f91fd842df3b0b98ae8d3ac6eb2ce4a
https://github.com/qemu/qemu/commit/5d630cef4f91fd842df3b0b98ae8d3ac6eb2ce4a
Author: Max Filippov <address@hidden>
Date: 2019-01-11 (Fri, 11 Jan 2019)
Changed paths:
M target/xtensa/cpu.h
M target/xtensa/helper.h
M target/xtensa/op_helper.c
M target/xtensa/overlay_tool.h
M target/xtensa/translate.c
Log Message:
-----------
target/xtensa: rework zero overhead loops implementation
Don't invalidate TB with the end of zero overhead loop when LBEG or LEND
change. Instead encode the distance from the start of the page where the
TB starts to the LEND in the TB cs_base and generate loopback code when
the next PC matches encoded LEND. Distance to a destination within the
same page and up to a maximum instruction length into the next page is
encoded literally, otherwise it's zero. The distance from LEND to LBEG
is also encoded in the cs_base: it's encoded literally when less than
256 or as 0 otherwise. This allows for TB chaining for the loopback
branch at the end of a loop for the most common loop sizes.
With this change the resulting emulation speed is about 10% higher in
softmmu mode on uClibc-ng and LTP tests. Emulation speed in linux
user mode is a few percent lower because there's no direct TB chaining
between different memory pages. Testing with lower limit on direct TB
chaining range shows gradual slowdown to ~15% for the block size of 64
bytes and ~50% for the block size of 32 bytes.
Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Commit: 9483bf27ee1ed3dca290f6c0150b1b161efdb222
https://github.com/qemu/qemu/commit/9483bf27ee1ed3dca290f6c0150b1b161efdb222
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/Makefile.objs
A target/xtensa/fpu_helper.c
M target/xtensa/op_helper.c
Log Message:
-----------
target/xtensa: extract FPU helpers
Move FPU-related HELPER functions from op_helper.c to fpu_helper.c
No functional changes.
Signed-off-by: Max Filippov <address@hidden>
Commit: c9ed50e82d640f164b06c9170382622a9adf9906
https://github.com/qemu/qemu/commit/c9ed50e82d640f164b06c9170382622a9adf9906
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/Makefile.objs
M target/xtensa/op_helper.c
A target/xtensa/win_helper.c
Log Message:
-----------
target/xtensa: extract windowed registers helpers
Move helper functions related to register windows from op_helper.c to
win_helper.c. No functional changes.
Signed-off-by: Max Filippov <address@hidden>
Commit: 7e5e5a630245727854ac17a973bff1f3b3d87743
https://github.com/qemu/qemu/commit/7e5e5a630245727854ac17a973bff1f3b3d87743
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/Makefile.objs
M target/xtensa/helper.c
A target/xtensa/mmu_helper.c
M target/xtensa/op_helper.c
Log Message:
-----------
target/xtensa: extract MMU helpers
Move MMU-related helper functions from op_helper.c and helper.c to
mmu_helper.c. No functional changes.
Signed-off-by: Max Filippov <address@hidden>
Commit: 8803bfea0ea6dee8f44e56775ed77eb4175bb916
https://github.com/qemu/qemu/commit/8803bfea0ea6dee8f44e56775ed77eb4175bb916
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/Makefile.objs
A target/xtensa/dbg_helper.c
M target/xtensa/op_helper.c
Log Message:
-----------
target/xtensa: extract debug helpers
Move HELPER functions related to native debugging from op_helper.c to
dbg_helper.c. No functional changes.
Signed-off-by: Max Filippov <address@hidden>
Commit: 8d918d656a1c4bb2300928468e27c53d72420bb9
https://github.com/qemu/qemu/commit/8d918d656a1c4bb2300928468e27c53d72420bb9
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/Makefile.objs
A target/xtensa/exc_helper.c
M target/xtensa/helper.c
M target/xtensa/op_helper.c
Log Message:
-----------
target/xtensa: extract interrupt and exception helpers
Move helper functions related to interrupt and exception handling from
op_helper.c and helper.c to exc_helper.c. No functional changes.
Signed-off-by: Max Filippov <address@hidden>
Commit: d9908e037eb34d62802dbf86e9f588b78b1c159d
https://github.com/qemu/qemu/commit/d9908e037eb34d62802dbf86e9f588b78b1c159d
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/helper.h
M target/xtensa/op_helper.c
Log Message:
-----------
target/xtensa: drop dump_state helper
Drop unused helper dump_state from op_helper.c
Signed-off-by: Max Filippov <address@hidden>
Commit: 9584116f94c75411998703b76cc6a6e9e7fd7a8b
https://github.com/qemu/qemu/commit/9584116f94c75411998703b76cc6a6e9e7fd7a8b
Author: Max Filippov <address@hidden>
Date: 2019-01-13 (Sun, 13 Jan 2019)
Changed paths:
M target/xtensa/helper.c
M target/xtensa/op_helper.c
Log Message:
-----------
target/xtensa: move non-HELPER functions to helper.c
Move remaining non-HELPER functions from op_helper.c to helper.c.
No functional changes.
Signed-off-by: Max Filippov <address@hidden>
Commit: 6d809e7da943bb4b95b408fbf3d80d097c0f7d38
https://github.com/qemu/qemu/commit/6d809e7da943bb4b95b408fbf3d80d097c0f7d38
Author: Peter Maydell <address@hidden>
Date: 2019-01-23 (Wed, 23 Jan 2019)
Changed paths:
M target/xtensa/Makefile.objs
M target/xtensa/cpu.h
A target/xtensa/dbg_helper.c
A target/xtensa/exc_helper.c
A target/xtensa/fpu_helper.c
M target/xtensa/helper.c
M target/xtensa/helper.h
A target/xtensa/mmu_helper.c
M target/xtensa/op_helper.c
M target/xtensa/overlay_tool.h
M target/xtensa/translate.c
A target/xtensa/win_helper.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/xtensa/tags/20190122-xtensa' into
staging
target/xtensa: zero overhead loops rework/helpers split
- change xtensa zero overhead loops implementation to avoid invalidation
of TBs corresponding to previous loop body when a new loop is
encountered;
- extract helper function groups from op_helper.c and move them into
separate source files: exc_helper.c (exception helpers), win_helper.c
(windowed registers helpers), fpu_helper.c (floating point helpers),
mmu_helper.c (memory management helpers) and dbg_helper.c (native debug
helpers).
# gpg: Signature made Tue 22 Jan 2019 18:44:17 GMT
# gpg: using RSA key 51F9CC91F83FA044
# gpg: Good signature from "Max Filippov <address@hidden>"
# gpg: aka "Max Filippov <address@hidden>"
# gpg: aka "Max Filippov <address@hidden>"
# Primary key fingerprint: 2B67 854B 98E5 327D CDEB 17D8 51F9 CC91 F83F A044
* remotes/xtensa/tags/20190122-xtensa:
target/xtensa: move non-HELPER functions to helper.c
target/xtensa: drop dump_state helper
target/xtensa: extract interrupt and exception helpers
target/xtensa: extract debug helpers
target/xtensa: extract MMU helpers
target/xtensa: extract windowed registers helpers
target/xtensa: extract FPU helpers
target/xtensa: rework zero overhead loops implementation
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/f6b06fcceef4...6d809e7da943
**NOTE:** GitHub Services has been marked for deprecation:
https://developer.github.com/changes/2018-04-25-github-services-deprecation/
We will provide an alternative path for the email notifications by
January 31st, 2019.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 5d630c: target/xtensa: rework zero overhead loops implemen...,
GitHub <=