aboutsummaryrefslogtreecommitdiff
path: root/slof/prim.in
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2015-08-03 23:06:37 +0200
committerAlexey Kardashevskiy <aik@ozlabs.ru>2015-08-05 16:01:39 +1000
commit59a135eb78378f1574549c93bbf421505576ec6e (patch)
tree9b084fbab14ac9b77af27d5db85c7ee4c9b425ff /slof/prim.in
parentd0732f556d44e3b2aab427863fa47ba9ae0e1419 (diff)
downloadSLOF-59a135eb78378f1574549c93bbf421505576ec6e.zip
SLOF-59a135eb78378f1574549c93bbf421505576ec6e.tar.gz
SLOF-59a135eb78378f1574549c93bbf421505576ec6e.tar.bz2
fbuffer: Implement MRMOVE as an accelerated primitive
The character drawing function fb8-draw-character uses "mrmove" (which moves main memory contents to IO memory) to copy the data of the character from main memory to the frame buffer. However, the current implementation of "mrmove" performs quite badly on board-qemu since it triggers a hypercall for each memory access (e.g. for each 8 bytes that are transfered). But since the KVMPPC_H_LOGICAL_MEMOP hypercall can transfer bigger regions at once, we can accelerate the character drawing quite a bit by simply mapping the "mrmove" to the same macro that is already used for the "rmove" (which is normally only used for copying from IO memory to IO memory, but on board-qemu it does not matter). For keeping board-js2x in sync, this patch also transforms the "mrmove" for js2x into primitives. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'slof/prim.in')
-rw-r--r--slof/prim.in1
1 files changed, 1 insertions, 0 deletions
diff --git a/slof/prim.in b/slof/prim.in
index 7a0d6a2..c291535 100644
--- a/slof/prim.in
+++ b/slof/prim.in
@@ -106,6 +106,7 @@ cod(EXECUTE)
cod(MOVE)
// cod(RMOVE64)
cod(RMOVE)
+cod(MRMOVE)
cod(ZCOUNT)
con(HASH-SIZE HASHSIZE)
cod(HASH)