Message ID | 20210910112624.72748-1-luis.pires@eldorado.org.br |
---|---|
Headers | show |
Series | target/ppc: DFP instructions using decodetree | expand |
On Fri, Sep 10, 2021 at 08:26:02AM -0300, Luis Pires wrote: > This series moves all existing DFP instructions to decodetree and > implements the 2 new instructions (dcffixqq and dctfixqq) from > Power ISA 3.1. > > In order to implement dcffixqq, divu128/divs128 were modified to > support 128-bit quotients (previously, they were limited to 64-bit > quotients), along with adjustments being made to their existing callers. > libdecnumber was also expanded to allow creating decimal numbers from > 128-bit integers. > > Similarly, for dctfixqq, mulu128 (host-utils) and decNumberIntegralToInt128 > (libdecnumber) were introduced to support 128-bit integers. > > The remaining patches of this series move all of the already existing > DFP instructions to decodetree, and end up removing dfp-ops.c.inc, which > is no longer needed. > > NOTE 1: The previous, non-decodetree code, was updating ctx->nip for all the > DFP instructions. I've removed that, but it would be great if someone could > confirm that updating nip really wasn't necessary. > > NOTE 2: Some arithmetic function support for 128-bit integers was added, > for now, still using 64-bit pairs. In the near future, I think we should > modify all of them to use Int128 (and introduce UInt128). But I'll send > out an RFC to discuss how to do that in another patch series. > > NOTE 3: The helper names are in uppercase, to match the instruction > names and to simplify the macros that define trans* functions. > Previously, this wasn't the case, as we were using lowercase instruction > names in the pre-decodetree code. Another standalone patch will be sent > later on, changing to uppercase the other new (decodetree) helpers whose > names are directly related to instruction names, eventually making PPC > helper names consistent. > > Based-on: 20210823150235.35759-1-luis.pires@eldorado.org.br > (target/ppc: fix setting of CR flags in bcdcfsq) > This series assumes bcdcfsq's fix is already in. I've applied 1..4 to ppc-for-6.2, since those have acks. Waiting on reviews (probably from Richard) before applying the rest.
Ping. Patches 1-4 were already applied, and patches 5-8, 12, 15, 18 are missing reviews. Thanks, -- Luis Pires Instituto de Pesquisas ELDORADO Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html> From: Luis Pires <luis.pires@eldorado.org.br> > This series moves all existing DFP instructions to decodetree and implements the > 2 new instructions (dcffixqq and dctfixqq) from Power ISA 3.1. > > In order to implement dcffixqq, divu128/divs128 were modified to support 128- > bit quotients (previously, they were limited to 64-bit quotients), along with > adjustments being made to their existing callers. > libdecnumber was also expanded to allow creating decimal numbers from 128- > bit integers. > > Similarly, for dctfixqq, mulu128 (host-utils) and decNumberIntegralToInt128 > (libdecnumber) were introduced to support 128-bit integers. > > The remaining patches of this series move all of the already existing DFP > instructions to decodetree, and end up removing dfp-ops.c.inc, which is no > longer needed. > > NOTE 1: The previous, non-decodetree code, was updating ctx->nip for all the > DFP instructions. I've removed that, but it would be great if someone could > confirm that updating nip really wasn't necessary. > > NOTE 2: Some arithmetic function support for 128-bit integers was added, for > now, still using 64-bit pairs. In the near future, I think we should modify all of > them to use Int128 (and introduce UInt128). But I'll send out an RFC to discuss > how to do that in another patch series. > > NOTE 3: The helper names are in uppercase, to match the instruction names and > to simplify the macros that define trans* functions. > Previously, this wasn't the case, as we were using lowercase instruction names > in the pre-decodetree code. Another standalone patch will be sent later on, > changing to uppercase the other new (decodetree) helpers whose names are > directly related to instruction names, eventually making PPC helper names > consistent. > > Based-on: 20210823150235.35759-1-luis.pires@eldorado.org.br > (target/ppc: fix setting of CR flags in bcdcfsq) This series assumes bcdcfsq's fix is > already in. > > Changes in v3: > - Split the uabs64 patch in 2 > - Included patch to fix missing zero-extension in divs128 > - Folded divisor == 0 into the dhi == 0 case in divu128 > - Moved udiv_qrnnd from softfloat-macros.h to host-utils.h > - Used udiv_qrnnd in divu128 > - Replaced int with bool in divs128 > - Added unit test to check the divisor normalization in divu128 > - Removed 'inline' from times_* functions in ppc/translate.c > - Used uadd64_overflow in mulu128 > - Removed unnecessary 'else' from decNumberIntegralToInt128 > > Changes in v2: > - Renamed abs64() to uabs64() > > Patches missing review: > host-utils: fix missing zero-extension in divs128 > host-utils: move checks out of divu128/divs128 > host-utils: move udiv_qrnnd() to host-utils > host-utils: add 128-bit quotient support to divu128/divs128 > host-utils: add unit tests for divu128/divs128 > target/ppc: Implement DCFFIXQQ > target/ppc: Implement DCTFIXQQ > target/ppc: Move dcmp{u,o}[q],dts{tex,tsf,tsfi}[q] to decodetree > > -- > Luis Pires > Instituto de Pesquisas ELDORADO > Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html> > > Bruno Larsen (1): > target/ppc: Move REQUIRE_ALTIVEC/VECTOR to translate.c > > Fernando Valle (1): > target/ppc: Introduce REQUIRE_FPU > > Luis Pires (20): > host-utils: Fix overflow detection in divu128() > host-utils: fix missing zero-extension in divs128 > host-utils: introduce uabs64() > i386/kvm: Replace abs64() with uabs64() from host-utils > host-utils: move checks out of divu128/divs128 > host-utils: move udiv_qrnnd() to host-utils > host-utils: add 128-bit quotient support to divu128/divs128 > host-utils: add unit tests for divu128/divs128 > libdecnumber: introduce decNumberFrom[U]Int128 > target/ppc: Implement DCFFIXQQ > host-utils: Introduce mulu128 > libdecnumber: Introduce decNumberIntegralToInt128 > target/ppc: Implement DCTFIXQQ > target/ppc: Move dtstdc[q]/dtstdg[q] to decodetree > target/ppc: Move d{add,sub,mul,div,iex}[q] to decodetree > target/ppc: Move dcmp{u,o}[q],dts{tex,tsf,tsfi}[q] to decodetree > target/ppc: Move dquai[q], drint{x,n}[q] to decodetree > target/ppc: Move dqua[q], drrnd[q] to decodetree > target/ppc: Move dct{dp,qpq},dr{sp,dpq},dc{f,t}fix[q],dxex[q] to > decodetree > target/ppc: Move ddedpd[q],denbcd[q],dscli[q],dscri[q] to decodetree > > hw/i386/kvm/i8254.c | 7 +- > include/fpu/softfloat-macros.h | 82 ----- > include/hw/clock.h | 7 +- > include/libdecnumber/decNumber.h | 4 + > include/libdecnumber/decNumberLocal.h | 2 +- > include/qemu/host-utils.h | 163 ++++++++-- > libdecnumber/decContext.c | 7 +- > libdecnumber/decNumber.c | 131 ++++++++ > target/ppc/dfp_helper.c | 168 +++++++--- > target/ppc/helper.h | 106 ++++--- > target/ppc/insn32.decode | 171 ++++++++++ > target/ppc/int_helper.c | 23 +- > target/ppc/translate.c | 23 +- > target/ppc/translate/dfp-impl.c.inc | 419 ++++++++++++------------- > target/ppc/translate/dfp-ops.c.inc | 165 ---------- > target/ppc/translate/vector-impl.c.inc | 10 +- > tests/unit/meson.build | 1 + > tests/unit/test-div128.c | 197 ++++++++++++ > util/host-utils.c | 142 ++++++--- > 19 files changed, 1163 insertions(+), 665 deletions(-) delete mode 100644 > target/ppc/translate/dfp-ops.c.inc > create mode 100644 tests/unit/test-div128.c > > -- > 2.25.1
Ping? > -----Original Message----- > From: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br> > Sent: segunda-feira, 20 de setembro de 2021 15:51 > To: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br>; qemu- > devel@nongnu.org; qemu-ppc@nongnu.org > Cc: david@gibson.dropbear.id.au; groug@kaod.org; > richard.henderson@linaro.org > Subject: RE: [PATCH v3 00/22] target/ppc: DFP instructions using decodetree > > Ping. > > Patches 1-4 were already applied, and patches 5-8, 12, 15, 18 are missing > reviews. > > Thanks, > > -- > Luis Pires > Instituto de Pesquisas ELDORADO > Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html> > > From: Luis Pires <luis.pires@eldorado.org.br> > > This series moves all existing DFP instructions to decodetree and > > implements the > > 2 new instructions (dcffixqq and dctfixqq) from Power ISA 3.1. > > > > In order to implement dcffixqq, divu128/divs128 were modified to > > support 128- bit quotients (previously, they were limited to 64-bit > > quotients), along with adjustments being made to their existing callers. > > libdecnumber was also expanded to allow creating decimal numbers from > > 128- bit integers. > > > > Similarly, for dctfixqq, mulu128 (host-utils) and > > decNumberIntegralToInt128 > > (libdecnumber) were introduced to support 128-bit integers. > > > > The remaining patches of this series move all of the already existing > > DFP instructions to decodetree, and end up removing dfp-ops.c.inc, > > which is no longer needed. > > > > NOTE 1: The previous, non-decodetree code, was updating ctx->nip for > > all the DFP instructions. I've removed that, but it would be great if > > someone could confirm that updating nip really wasn't necessary. > > > > NOTE 2: Some arithmetic function support for 128-bit integers was > > added, for now, still using 64-bit pairs. In the near future, I think > > we should modify all of them to use Int128 (and introduce UInt128). > > But I'll send out an RFC to discuss how to do that in another patch series. > > > > NOTE 3: The helper names are in uppercase, to match the instruction > > names and to simplify the macros that define trans* functions. > > Previously, this wasn't the case, as we were using lowercase > > instruction names in the pre-decodetree code. Another standalone patch > > will be sent later on, changing to uppercase the other new > > (decodetree) helpers whose names are directly related to instruction > > names, eventually making PPC helper names consistent. > > > > Based-on: 20210823150235.35759-1-luis.pires@eldorado.org.br > > (target/ppc: fix setting of CR flags in bcdcfsq) This series assumes > > bcdcfsq's fix is already in. > > > > Changes in v3: > > - Split the uabs64 patch in 2 > > - Included patch to fix missing zero-extension in divs128 > > - Folded divisor == 0 into the dhi == 0 case in divu128 > > - Moved udiv_qrnnd from softfloat-macros.h to host-utils.h > > - Used udiv_qrnnd in divu128 > > - Replaced int with bool in divs128 > > - Added unit test to check the divisor normalization in divu128 > > - Removed 'inline' from times_* functions in ppc/translate.c > > - Used uadd64_overflow in mulu128 > > - Removed unnecessary 'else' from decNumberIntegralToInt128 > > > > Changes in v2: > > - Renamed abs64() to uabs64() > > > > Patches missing review: > > host-utils: fix missing zero-extension in divs128 > > host-utils: move checks out of divu128/divs128 > > host-utils: move udiv_qrnnd() to host-utils > > host-utils: add 128-bit quotient support to divu128/divs128 > > host-utils: add unit tests for divu128/divs128 > > target/ppc: Implement DCFFIXQQ > > target/ppc: Implement DCTFIXQQ > > target/ppc: Move dcmp{u,o}[q],dts{tex,tsf,tsfi}[q] to decodetree > > > > -- > > Luis Pires > > Instituto de Pesquisas ELDORADO > > Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html> > > > > Bruno Larsen (1): > > target/ppc: Move REQUIRE_ALTIVEC/VECTOR to translate.c > > > > Fernando Valle (1): > > target/ppc: Introduce REQUIRE_FPU > > > > Luis Pires (20): > > host-utils: Fix overflow detection in divu128() > > host-utils: fix missing zero-extension in divs128 > > host-utils: introduce uabs64() > > i386/kvm: Replace abs64() with uabs64() from host-utils > > host-utils: move checks out of divu128/divs128 > > host-utils: move udiv_qrnnd() to host-utils > > host-utils: add 128-bit quotient support to divu128/divs128 > > host-utils: add unit tests for divu128/divs128 > > libdecnumber: introduce decNumberFrom[U]Int128 > > target/ppc: Implement DCFFIXQQ > > host-utils: Introduce mulu128 > > libdecnumber: Introduce decNumberIntegralToInt128 > > target/ppc: Implement DCTFIXQQ > > target/ppc: Move dtstdc[q]/dtstdg[q] to decodetree > > target/ppc: Move d{add,sub,mul,div,iex}[q] to decodetree > > target/ppc: Move dcmp{u,o}[q],dts{tex,tsf,tsfi}[q] to decodetree > > target/ppc: Move dquai[q], drint{x,n}[q] to decodetree > > target/ppc: Move dqua[q], drrnd[q] to decodetree > > target/ppc: Move dct{dp,qpq},dr{sp,dpq},dc{f,t}fix[q],dxex[q] to > > decodetree > > target/ppc: Move ddedpd[q],denbcd[q],dscli[q],dscri[q] to decodetree > > > > hw/i386/kvm/i8254.c | 7 +- > > include/fpu/softfloat-macros.h | 82 ----- > > include/hw/clock.h | 7 +- > > include/libdecnumber/decNumber.h | 4 + > > include/libdecnumber/decNumberLocal.h | 2 +- > > include/qemu/host-utils.h | 163 ++++++++-- > > libdecnumber/decContext.c | 7 +- > > libdecnumber/decNumber.c | 131 ++++++++ > > target/ppc/dfp_helper.c | 168 +++++++--- > > target/ppc/helper.h | 106 ++++--- > > target/ppc/insn32.decode | 171 ++++++++++ > > target/ppc/int_helper.c | 23 +- > > target/ppc/translate.c | 23 +- > > target/ppc/translate/dfp-impl.c.inc | 419 ++++++++++++------------- > > target/ppc/translate/dfp-ops.c.inc | 165 ---------- > > target/ppc/translate/vector-impl.c.inc | 10 +- > > tests/unit/meson.build | 1 + > > tests/unit/test-div128.c | 197 ++++++++++++ > > util/host-utils.c | 142 ++++++--- > > 19 files changed, 1163 insertions(+), 665 deletions(-) delete mode > > 100644 target/ppc/translate/dfp-ops.c.inc > > create mode 100644 tests/unit/test-div128.c > > > > -- > > 2.25.1
On Thu, Oct 14, 2021 at 05:02:59PM +0000, Luis Fernando Fujita Pires wrote: > Ping? I'm not sure who you're asking for what. From my PoV, I'm waiting for reviews. > > > -----Original Message----- > > From: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br> > > Sent: segunda-feira, 20 de setembro de 2021 15:51 > > To: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br>; qemu- > > devel@nongnu.org; qemu-ppc@nongnu.org > > Cc: david@gibson.dropbear.id.au; groug@kaod.org; > > richard.henderson@linaro.org > > Subject: RE: [PATCH v3 00/22] target/ppc: DFP instructions using decodetree > > > > Ping. > > > > Patches 1-4 were already applied, and patches 5-8, 12, 15, 18 are missing > > reviews. > > > > Thanks, > > >
Sorry, that was in the e-mail I replied to. I'm asking for reviews on patches 5, 6, 7, 8, 12, 15 and 18: 5: host-utils: move checks out of divu128/divs128 6: host-utils: move udiv_qrnnd() to host-utils 7: host-utils: add 128-bit quotient support to divu128/divs128 8: host-utils: add unit tests for divu128/divs128 12: target/ppc: Implement DCFFIXQQ 15: target/ppc: Implement DCTFIXQQ 18: target/ppc: Move dcmp{u,o}[q],dts{tex,tsf,tsfi}[q] to decodetree > > > Patches 1-4 were already applied, and patches 5-8, 12, 15, 18 are > > > missing reviews. Thanks, -- Luis Pires Instituto de Pesquisas ELDORADO Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html> > -----Original Message----- > From: david@gibson.dropbear.id.au <david@gibson.dropbear.id.au> > Sent: sexta-feira, 15 de outubro de 2021 00:15 > To: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br> > Cc: qemu-devel@nongnu.org; qemu-ppc@nongnu.org; groug@kaod.org; > richard.henderson@linaro.org > Subject: Re: [PATCH v3 00/22] target/ppc: DFP instructions using decodetree > > On Thu, Oct 14, 2021 at 05:02:59PM +0000, Luis Fernando Fujita Pires wrote: > > Ping? > > I'm not sure who you're asking for what. From my PoV, I'm waiting for reviews. > > > > > > -----Original Message----- > > > From: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br> > > > Sent: segunda-feira, 20 de setembro de 2021 15:51 > > > To: Luis Fernando Fujita Pires <luis.pires@eldorado.org.br>; qemu- > > > devel@nongnu.org; qemu-ppc@nongnu.org > > > Cc: david@gibson.dropbear.id.au; groug@kaod.org; > > > richard.henderson@linaro.org > > > Subject: RE: [PATCH v3 00/22] target/ppc: DFP instructions using > > > decodetree > > > > > > Ping. > > > > > > Patches 1-4 were already applied, and patches 5-8, 12, 15, 18 are > > > missing reviews. > > > > > > Thanks, > > > > > > > -- > David Gibson | I'll have my music baroque, and my code > david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ > | _way_ _around_! > http://www.ozlabs.org/~dgibson