[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 1c4693: qemu/int128: Add int128_{not, xor}
From: |
Richard Henderson |
Subject: |
[Qemu-commits] [qemu/qemu] 1c4693: qemu/int128: Add int128_{not, xor} |
Date: |
Wed, 27 Oct 2021 19:42:52 -0700 |
Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: 1c46937358fc27a9e446d08c877389ee84d6767d
https://github.com/qemu/qemu/commit/1c46937358fc27a9e446d08c877389ee84d6767d
Author: Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M include/qemu/int128.h
Log Message:
-----------
qemu/int128: Add int128_{not,xor}
Addition of not and xor on 128-bit integers.
Signed-off-by: Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
Co-authored-by: Fabien Portas <fabien.portas@grenoble-inp.org>
Message-Id: <20211025122818.168890-3-frederic.petrot@univ-grenoble-alpes.fr>
[rth: Split out logical operations.]
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 9276a31c3484ff236a958a1e2a38beefb0eb7ebb
https://github.com/qemu/qemu/commit/9276a31c3484ff236a958a1e2a38beefb0eb7ebb
Author: Luis Pires <luis.pires@eldorado.org.br>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M include/hw/clock.h
M include/qemu/host-utils.h
M target/ppc/int_helper.c
M util/host-utils.c
Log Message:
-----------
host-utils: move checks out of divu128/divs128
In preparation for changing the divu128/divs128 implementations
to allow for quotients larger than 64 bits, move the div-by-zero
and overflow checks to the callers.
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211025191154.350831-2-luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 8ac2d6c526d9ea0c89c8aa7046ca56e1b1b9d130
https://github.com/qemu/qemu/commit/8ac2d6c526d9ea0c89c8aa7046ca56e1b1b9d130
Author: Luis Pires <luis.pires@eldorado.org.br>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M include/fpu/softfloat-macros.h
M include/qemu/host-utils.h
Log Message:
-----------
host-utils: move udiv_qrnnd() to host-utils
Move udiv_qrnnd() from include/fpu/softfloat-macros.h to host-utils,
so it can be reused by divu128().
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211025191154.350831-3-luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 40f3e79a862554553811d0681c05e00a4705e91c
https://github.com/qemu/qemu/commit/40f3e79a862554553811d0681c05e00a4705e91c
Author: Luis Pires <luis.pires@eldorado.org.br>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M include/hw/clock.h
M include/qemu/host-utils.h
M target/ppc/int_helper.c
M util/host-utils.c
Log Message:
-----------
host-utils: add 128-bit quotient support to divu128/divs128
These will be used to implement new decimal floating point
instructions from Power ISA 3.1.
The remainder is now returned directly by divu128/divs128,
freeing up phigh to receive the high 64 bits of the quotient.
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211025191154.350831-4-luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 023462978a1fb7b5a3f7ea74236a05d253d0b6e6
https://github.com/qemu/qemu/commit/023462978a1fb7b5a3f7ea74236a05d253d0b6e6
Author: Luis Pires <luis.pires@eldorado.org.br>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tests/unit/meson.build
A tests/unit/test-div128.c
Log Message:
-----------
host-utils: add unit tests for divu128/divs128
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211025191154.350831-5-luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: b1fde411d0f3dd146ba9864f3a475e7100a14a3b
https://github.com/qemu/qemu/commit/b1fde411d0f3dd146ba9864f3a475e7100a14a3b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Rename "mask" to "z_mask"
Prepare for tracking different masks by renaming this one.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 3b3f847d754d7f243b2a04775f37c1b324ca1a12
https://github.com/qemu/qemu/commit/3b3f847d754d7f243b2a04775f37c1b324ca1a12
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out OptContext
Provide what will become a larger context for splitting
the very large tcg_optimize function.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: b10f38339bda94bd960d6936ca6047b34be8eb31
https://github.com/qemu/qemu/commit/b10f38339bda94bd960d6936ca6047b34be8eb31
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Remove do_default label
Break the final cleanup clause out of the main switch
statement. When fully folding an opcode to mov/movi,
use "continue" to process the next opcode, else break
to fall into the final cleanup.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: dc84988a5f4147b8c1f90ed4cdcf5c57f06749cd
https://github.com/qemu/qemu/commit/dc84988a5f4147b8c1f90ed4cdcf5c57f06749cd
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Change tcg_opt_gen_{mov,movi} interface
Adjust the interface to take the OptContext parameter instead
of TCGContext or both.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: d0ed5151b11b12e9e2ca3c9adde2fd4444588948
https://github.com/qemu/qemu/commit/d0ed5151b11b12e9e2ca3c9adde2fd4444588948
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Move prev_mb into OptContext
This will expose the variable to subroutines that
will be broken out of tcg_optimize.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: e2577ea24f9974ab0fb2a2b255203bad0c878f91
https://github.com/qemu/qemu/commit/e2577ea24f9974ab0fb2a2b255203bad0c878f91
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out init_arguments
There was no real reason for calls to have separate code here.
Unify init for calls vs non-calls using the call path, which
handles TCG_CALL_DUMMY_ARG.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 8774dded029c96130aacf6e6bb71b70cf271b8df
https://github.com/qemu/qemu/commit/8774dded029c96130aacf6e6bb71b70cf271b8df
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out copy_propagate
Continue splitting tcg_optimize.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 5cf32be7d8f385d1599655fdb9de87996243f33b
https://github.com/qemu/qemu/commit/5cf32be7d8f385d1599655fdb9de87996243f33b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_call
Calls are special in that they have a variable number
of arguments, and need to be able to clobber globals.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: ec5d4cbeef2749c9137daeac1b7f67735510675b
https://github.com/qemu/qemu/commit/ec5d4cbeef2749c9137daeac1b7f67735510675b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Drop nb_oargs, nb_iargs locals
Rather than try to keep these up-to-date across folding,
re-read nb_oargs at the end, after re-reading the opcode.
A couple of asserts need dropping, but that will take care
of itself as we split the function further.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 8d57bf1e82da9c1a71c16b12545a9e8d347690f3
https://github.com/qemu/qemu/commit/8d57bf1e82da9c1a71c16b12545a9e8d347690f3
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Change fail return for do_constant_folding_cond*
Return -1 instead of 2 for failure, so that we can
use comparisons against 0 for all cases.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 6b99d5bf388655b340e93412bf60f8bff90e5870
https://github.com/qemu/qemu/commit/6b99d5bf388655b340e93412bf60f8bff90e5870
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Return true from tcg_opt_gen_{mov,movi}
This will allow callers to tail call to these functions
and return true indicating processing complete.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 137f1f4429965d9a702fae9fc89f2604449a24d3
https://github.com/qemu/qemu/commit/137f1f4429965d9a702fae9fc89f2604449a24d3
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out finish_folding
Copy z_mask into OptContext, for writeback to the
first output within the new function.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 404a148d891bf18fc564fa94b00970bbc2c0feec
https://github.com/qemu/qemu/commit/404a148d891bf18fc564fa94b00970bbc2c0feec
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Use a boolean to avoid a mass of continues
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 3eefdf2b5885dca36eefa200862c661654519162
https://github.com/qemu/qemu/commit/3eefdf2b5885dca36eefa200862c661654519162
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_mb, fold_qemu_{ld,st}
This puts the separate mb optimization into the same framework
as the others. While fold_qemu_{ld,st} are currently identical,
that won't last as more code gets moved.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 2f9f08ba43df3ea76124f66ae3fe99a96a0a072f
https://github.com/qemu/qemu/commit/2f9f08ba43df3ea76124f66ae3fe99a96a0a072f
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_const{1,2}
Split out a whole bunch of placeholder functions, which are
currently identical. That won't last as more code gets moved.
Use CASE_32_64_VEC for some logical operators that previously
missed the addition of vectors.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: bc47b1aa5be9f90cdbf7fbb01717e4259f717bb9
https://github.com/qemu/qemu/commit/bc47b1aa5be9f90cdbf7fbb01717e4259f717bb9
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_setcond2
Reduce some code duplication by folding the NE and EQ cases.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 764d2aba08c35f2462371b01c27fb032447afcd8
https://github.com/qemu/qemu/commit/764d2aba08c35f2462371b01c27fb032447afcd8
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_brcond2
Reduce some code duplication by folding the NE and EQ cases.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 079b08040e0c4eed96b3c19fe37cf17a46294d2b
https://github.com/qemu/qemu/commit/079b08040e0c4eed96b3c19fe37cf17a46294d2b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_brcond
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: c63ff55cc5d27b81e6a0924bd1f9abea262069a9
https://github.com/qemu/qemu/commit/c63ff55cc5d27b81e6a0924bd1f9abea262069a9
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_setcond
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 6b8ac0d1498cf6638e3d50c33e06e5b3b0e7a2d7
https://github.com/qemu/qemu/commit/6b8ac0d1498cf6638e3d50c33e06e5b3b0e7a2d7
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_mulu2_i32
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: e3f7dc216744aceb46fb67be1476b518bc48c5ff
https://github.com/qemu/qemu/commit/e3f7dc216744aceb46fb67be1476b518bc48c5ff
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_addsub2_i32
Add two additional helpers, fold_add2_i32 and fold_sub2_i32
which will not be simple wrappers forever.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 0c310a3005b59a1e3667654b9c88ddaa32eaf166
https://github.com/qemu/qemu/commit/0c310a3005b59a1e3667654b9c88ddaa32eaf166
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_movcond
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: dcd08996c9420a0d22399e0cc53117d2043a02bb
https://github.com/qemu/qemu/commit/dcd08996c9420a0d22399e0cc53117d2043a02bb
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_extract2
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: b6617c8821548350a490c14894a4fe0dba07fc73
https://github.com/qemu/qemu/commit/b6617c8821548350a490c14894a4fe0dba07fc73
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_extract, fold_sextract
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 1b1907b8460467743fd23cef918fac9dd7858441
https://github.com/qemu/qemu/commit/1b1907b8460467743fd23cef918fac9dd7858441
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_deposit
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 30dd0bfeb5385342a7f216e661d9b69f6ec7182e
https://github.com/qemu/qemu/commit/30dd0bfeb5385342a7f216e661d9b69f6ec7182e
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_count_zeros
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 09bacdc2632581cafd2878d91d62ba69dc7574f0
https://github.com/qemu/qemu/commit/09bacdc2632581cafd2878d91d62ba69dc7574f0
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_bswap
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 8cdb3fcb8e69502963ca4127fab656e5ffe2be93
https://github.com/qemu/qemu/commit/8cdb3fcb8e69502963ca4127fab656e5ffe2be93
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_dup, fold_dup2
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 2cfac7fa482e015310968ee68b001db94789d190
https://github.com/qemu/qemu/commit/2cfac7fa482e015310968ee68b001db94789d190
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_mov
This is the final entry in the main switch that was in a
different form. After this, we have the option to convert
the switch into a function dispatch table.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: cbe42fb2f22b9adb8b78374f6ff4ca5f58807208
https://github.com/qemu/qemu/commit/cbe42fb2f22b9adb8b78374f6ff4ca5f58807208
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_xx_to_i
Pull the "op r, a, a => movi r, 0" optimization into a function,
and use it in the outer opcode fold functions.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: ca7bb049a0250890afd4dd0e66f10b8a4d51715c
https://github.com/qemu/qemu/commit/ca7bb049a0250890afd4dd0e66f10b8a4d51715c
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_xx_to_x
Pull the "op r, a, a => mov r, a" optimization into a function,
and use it in the outer opcode fold functions.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: e8679955ec0791122a6c22d48ae760a215204f6a
https://github.com/qemu/qemu/commit/e8679955ec0791122a6c22d48ae760a215204f6a
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_xi_to_i
Pull the "op r, a, 0 => movi r, 0" optimization into a function,
and use it in the outer opcode fold functions.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 67f84c962166093f26a1f2c66034a44cf294e809
https://github.com/qemu/qemu/commit/67f84c962166093f26a1f2c66034a44cf294e809
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Add type to OptContext
Compute the type of the operation early.
There are at least 4 places that used a def->flags ladder
to determine the type of the operation being optimized.
There were two places that assumed !TCG_OPF_64BIT means
TCG_TYPE_I32, and so could potentially compute incorrect
results for vector operations.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 0e0a32bacb29c4313ef195d2ea18809fd25cf5e2
https://github.com/qemu/qemu/commit/0e0a32bacb29c4313ef195d2ea18809fd25cf5e2
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_to_not
Split out the conditional conversion from a more complex logical
operation to a simple NOT. Create a couple more helpers to make
this easy for the outer-most logical operations.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 9caca88a76a6b1e5203dd2470800941c2670a9cd
https://github.com/qemu/qemu/commit/9caca88a76a6b1e5203dd2470800941c2670a9cd
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_sub_to_neg
Even though there is only one user, place this more complex
conversion into its own helper.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: a63ce0e9cb860439d4277bd6dca696bce1f1bb6b
https://github.com/qemu/qemu/commit/a63ce0e9cb860439d4277bd6dca696bce1f1bb6b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_xi_to_x
Pull the "op r, a, i => mov r, a" optimization into a function,
and use them in the outer-most logical operations.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: da48e2720227473041b7a14dd9f838577d36833a
https://github.com/qemu/qemu/commit/da48e2720227473041b7a14dd9f838577d36833a
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_ix_to_i
Pull the "op r, 0, b => movi r, 0" optimization into a function,
and use it in fold_shift.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: fae450ba4764dcf8c7a131131639ac0969a8eae8
https://github.com/qemu/qemu/commit/fae450ba4764dcf8c7a131131639ac0969a8eae8
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Split out fold_masks
Move all of the known-zero optimizations into the per-opcode
functions. Use fold_masks when there is a possibility of the
result being determined, and simply set ctx->z_mask otherwise.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 407112b03d7665a3cb7b3a21105e721a8a0c5fd8
https://github.com/qemu/qemu/commit/407112b03d7665a3cb7b3a21105e721a8a0c5fd8
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Expand fold_mulu2_i32 to all 4-arg multiplies
Rename to fold_multiply2, and handle muls2_i32, mulu2_i64,
and muls2_i64.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 9531c078ff63783f2a21ba302827123e7b073304
https://github.com/qemu/qemu/commit/9531c078ff63783f2a21ba302827123e7b073304
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Expand fold_addsub2_i32 to 64-bit ops
Rename to fold_addsub2.
Use Int128 to implement the wider operation.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 7a2f70845255bd6a2ad6399d159c58a7e7b64b51
https://github.com/qemu/qemu/commit/7a2f70845255bd6a2ad6399d159c58a7e7b64b51
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Sink commutative operand swapping into fold functions
Most of these are handled by creating a fold_const2_commutative
to handle all of the binary operators. The rest were already
handled on a case-by-case basis in the switch, and have their
own fold function in which to place the call.
We now have only one major switch on TCGOpcode.
Introduce NO_DEST and a block comment for swap_commutative in
order to make the handling of brcond and movcond opcodes cleaner.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 77babeedd41f7b890a32d0f6955d2a407c9aaab4
https://github.com/qemu/qemu/commit/77babeedd41f7b890a32d0f6955d2a407c9aaab4
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Stop forcing z_mask to "garbage" for 32-bit values
This "garbage" setting pre-dates the addition of the type
changing opcodes INDEX_op_ext_i32_i64, INDEX_op_extu_i32_i64,
and INDEX_op_extr{l,h}_i64_i32.
So now we have a definitive points at which to adjust z_mask
to eliminate such bits from the 32-bit operands.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: fbf16492dd0c0ae76ab040791d8a50c46a7f272b
https://github.com/qemu/qemu/commit/fbf16492dd0c0ae76ab040791d8a50c46a7f272b
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Use fold_xx_to_i for orc
Recognize the constant function for or-complement.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: b6247051402da3bbfaec78006ec8a64362a9d97f
https://github.com/qemu/qemu/commit/b6247051402da3bbfaec78006ec8a64362a9d97f
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Use fold_xi_to_x for mul
Recognize the identity function for low-part multiply.
Suggested-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: bc942d5c35f5ba613762545de624a47cc9fbf35f
https://github.com/qemu/qemu/commit/bc942d5c35f5ba613762545de624a47cc9fbf35f
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Use fold_xi_to_x for div
Recognize the identity function for division.
Suggested-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 1727897e1d22dad474b0c72e35e304d8894bc77d
https://github.com/qemu/qemu/commit/1727897e1d22dad474b0c72e35e304d8894bc77d
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Use fold_xx_to_i for rem
Recognize the constant function for remainder.
Suggested-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 76a95403bf8d7831be43255eaf871da9436786dd
https://github.com/qemu/qemu/commit/76a95403bf8d7831be43255eaf871da9436786dd
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Optimize sign extensions
Certain targets, like riscv, produce signed 32-bit results.
This can lead to lots of redundant extensions as values are
manipulated.
Begin by tracking only the obvious sign-extensions, and
converting them to simple copies when possible.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: a62b16e5c9c51514928fcf3ee6a4fab0dd6d2f37
https://github.com/qemu/qemu/commit/a62b16e5c9c51514928fcf3ee6a4fab0dd6d2f37
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Propagate sign info for logical operations
Sign repetitions are perforce all identical, whether they are 1 or 0.
Bitwise operations preserve the relative quantity of the repetitions.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: b6cf6408bb191953a0f160f47c937a45d4a6ddd3
https://github.com/qemu/qemu/commit/b6cf6408bb191953a0f160f47c937a45d4a6ddd3
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Propagate sign info for setcond
The result is either 0 or 1, which means that we have
a 2 bit signed result, and thus 62 bits of sign.
For clarity, use the smask_from_zmask function.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 654011f5b3610a55da8ed4d680f4b25a63fdfba5
https://github.com/qemu/qemu/commit/654011f5b3610a55da8ed4d680f4b25a63fdfba5
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Propagate sign info for bit counting
The results are generally 6 bit unsigned values, though
the count leading and trailing bits may produce any value
for a zero input.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 820c025f0dcacf2f3c12735b1f162893fbfa7bc6
https://github.com/qemu/qemu/commit/820c025f0dcacf2f3c12735b1f162893fbfa7bc6
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M tcg/optimize.c
Log Message:
-----------
tcg/optimize: Propagate sign info for shifting
For constant shifts, we can simply shift the s_mask.
For variable shifts, we know that sar does not reduce
the s_mask, which helps for sequences like
ext32s_i64 t, in
sar_i64 t, t, v
ext32s_i64 out, t
allowing the final extend to be eliminated.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 80e9c5ade49e318f041abee291b47f281e20ee37
https://github.com/qemu/qemu/commit/80e9c5ade49e318f041abee291b47f281e20ee37
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2021-10-27 (Wed, 27 Oct 2021)
Changed paths:
M include/fpu/softfloat-macros.h
M include/hw/clock.h
M include/qemu/host-utils.h
M include/qemu/int128.h
M target/ppc/int_helper.c
M tcg/optimize.c
M tests/unit/meson.build
A tests/unit/test-div128.c
M util/host-utils.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20211027' into staging
Improvements to qemu/int128
Fixes for 128/64 division.
Cleanup tcg/optimize.c
Optimize redundant sign extensions
# gpg: Signature made Wed 27 Oct 2021 07:40:01 PM PDT
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>"
[ultimate]
* remotes/rth/tags/pull-tcg-20211027: (56 commits)
tcg/optimize: Propagate sign info for shifting
tcg/optimize: Propagate sign info for bit counting
tcg/optimize: Propagate sign info for setcond
tcg/optimize: Propagate sign info for logical operations
tcg/optimize: Optimize sign extensions
tcg/optimize: Use fold_xx_to_i for rem
tcg/optimize: Use fold_xi_to_x for div
tcg/optimize: Use fold_xi_to_x for mul
tcg/optimize: Use fold_xx_to_i for orc
tcg/optimize: Stop forcing z_mask to "garbage" for 32-bit values
tcg/optimize: Sink commutative operand swapping into fold functions
tcg/optimize: Expand fold_addsub2_i32 to 64-bit ops
tcg/optimize: Expand fold_mulu2_i32 to all 4-arg multiplies
tcg/optimize: Split out fold_masks
tcg/optimize: Split out fold_ix_to_i
tcg/optimize: Split out fold_xi_to_x
tcg/optimize: Split out fold_sub_to_neg
tcg/optimize: Split out fold_to_not
tcg/optimize: Add type to OptContext
tcg/optimize: Split out fold_xi_to_i
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Compare: https://github.com/qemu/qemu/compare/c52d69e7dbaa...80e9c5ade49e
- [Qemu-commits] [qemu/qemu] 1c4693: qemu/int128: Add int128_{not, xor},
Richard Henderson <=