Discussion:
[PATCH 0/6] MIPS reorganize the loongson march and extensions instructions set
Paul Hua
2018-08-04 07:53:50 UTC
Permalink
Hi:

This series patches reorganize the Loongson -march=xxx and Loongson
extensions instructions set. For long time, the Loongson extensions
instructions set puts under -march=loongson3a option. We can't
disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from
loongson3a, add -mloongson-cam/-mno-loongson-cam option for
enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from
loongson3a, add -mloongson-ext/-mno-loongson-ext option for
enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support,
add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a
codename of 3A1000 microarchitecture. Rename -march=loongson3a to
-march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for
compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include
loongson-ext2 instructions set.
Paul Hua
2018-08-04 08:03:57 UTC
Permalink
sorry, not finished yet, send again.

This series patches reorganize the Loongson -march=xxx and Loongson
extensions instructions set. For long time, the Loongson extensions
instructions set puts under -march=loongson3a option. We can't
disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from
loongson3a, add -mloongson-cam/-mno-loongson-cam option for
enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from
loongson3a, add -mloongson-ext/-mno-loongson-ext option for
enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support,
add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a
codename of 3A1000 microarchitecture. Rename -march=loongson3a to
-march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for
compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include
loongson-ext2 instructions set.
The patch (6) add Loongson 2K1000 processor support.

There are six patches in this set, as follows.
1) MIPS/GAS: Split Loongson CAM Instructions from loongson3a.
2) MIPS/GAS: Split Loongson EXT Instructions from loongson3a
3) MIPS/GAS: Add Loongson EXT2 Instructions support.
4) MIPS: Add Loongson 3A1000 proccessor support.
5) MIPS: Add Loongson 3A2000/3A3000 proccessor support.
6) MIPS: Add Loongson 2K1000 proccessor support.

All patchs test under mips64el-linux-gnu no new regressions.

Paul Hua
This series patches reorganize the Loongson -march=xxx and Loongson extensions instructions set. For long time, the Loongson extensions instructions set puts under -march=loongson3a option. We can't disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from loongson3a, add -mloongson-cam/-mno-loongson-cam option for enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from loongson3a, add -mloongson-ext/-mno-loongson-ext option for enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support, add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a codename of 3A1000 microarchitecture. Rename -march=loongson3a to -march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include loongson-ext2 instructions set.
Paul Hua
2018-08-10 02:44:45 UTC
Permalink
ping.

Paul Hua
Post by Paul Hua
sorry, not finished yet, send again.
This series patches reorganize the Loongson -march=xxx and Loongson
extensions instructions set. For long time, the Loongson extensions
instructions set puts under -march=loongson3a option. We can't
disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from
loongson3a, add -mloongson-cam/-mno-loongson-cam option for
enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from
loongson3a, add -mloongson-ext/-mno-loongson-ext option for
enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support,
add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a
codename of 3A1000 microarchitecture. Rename -march=loongson3a to
-march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for
compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include
loongson-ext2 instructions set.
The patch (6) add Loongson 2K1000 processor support.
There are six patches in this set, as follows.
1) MIPS/GAS: Split Loongson CAM Instructions from loongson3a.
2) MIPS/GAS: Split Loongson EXT Instructions from loongson3a
3) MIPS/GAS: Add Loongson EXT2 Instructions support.
4) MIPS: Add Loongson 3A1000 proccessor support.
5) MIPS: Add Loongson 3A2000/3A3000 proccessor support.
6) MIPS: Add Loongson 2K1000 proccessor support.
All patchs test under mips64el-linux-gnu no new regressions.
Paul Hua
This series patches reorganize the Loongson -march=xxx and Loongson extensions instructions set. For long time, the Loongson extensions instructions set puts under -march=loongson3a option. We can't disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from loongson3a, add -mloongson-cam/-mno-loongson-cam option for enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from loongson3a, add -mloongson-ext/-mno-loongson-ext option for enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support, add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a codename of 3A1000 microarchitecture. Rename -march=loongson3a to -march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include loongson-ext2 instructions set.
Paul Hua
2018-08-16 09:40:10 UTC
Permalink
Hi,

Please review this series patch.

[0/6] https://sourceware.org/ml/binutils/2018-08/msg00087.html
[1/6] https://sourceware.org/ml/binutils/2018-08/msg00088.html
[2/6] https://sourceware.org/ml/binutils/2018-08/msg00089.html
[3/6] https://sourceware.org/ml/binutils/2018-08/msg00090.html
[4/6] https://sourceware.org/ml/binutils/2018-08/msg00091.html
[5/6] https://sourceware.org/ml/binutils/2018-08/msg00094.html
[6/6] https://sourceware.org/ml/binutils/2018-08/msg00095.html

Thanks
Paul Hua
Post by Paul Hua
ping.
Paul Hua
Post by Paul Hua
sorry, not finished yet, send again.
This series patches reorganize the Loongson -march=xxx and Loongson
extensions instructions set. For long time, the Loongson extensions
instructions set puts under -march=loongson3a option. We can't
disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from
loongson3a, add -mloongson-cam/-mno-loongson-cam option for
enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from
loongson3a, add -mloongson-ext/-mno-loongson-ext option for
enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support,
add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a
codename of 3A1000 microarchitecture. Rename -march=loongson3a to
-march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for
compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include
loongson-ext2 instructions set.
The patch (6) add Loongson 2K1000 processor support.
There are six patches in this set, as follows.
1) MIPS/GAS: Split Loongson CAM Instructions from loongson3a.
2) MIPS/GAS: Split Loongson EXT Instructions from loongson3a
3) MIPS/GAS: Add Loongson EXT2 Instructions support.
4) MIPS: Add Loongson 3A1000 proccessor support.
5) MIPS: Add Loongson 3A2000/3A3000 proccessor support.
6) MIPS: Add Loongson 2K1000 proccessor support.
All patchs test under mips64el-linux-gnu no new regressions.
Paul Hua
This series patches reorganize the Loongson -march=xxx and Loongson extensions instructions set. For long time, the Loongson extensions instructions set puts under -march=loongson3a option. We can't disable one of them when we need.
The patch (1) split Loongson Content Address Memory (CAM) from loongson3a, add -mloongson-cam/-mno-loongson-cam option for enable/disable them.
The patch (2) split Loongson EXTensions (EXT) instructions from loongson3a, add -mloongson-ext/-mno-loongson-ext option for enable/disable them.
The patch (3) add Loongson EXTensions R2 (EXT2) instructions support, add -mloongson-ext2/-mno-loongson-ext2 option for enable/disable them.
The patch (4) add Loongson 3A1000 processor support. The gs464 is a codename of 3A1000 microarchitecture. Rename -march=loongson3a to -march=gs464, Keep -march=loongson3a as an alias of -march=gs464 for compatibility.
The patch (5) add Loongson 3A2000/3A3000 processor support. Include loongson-ext2 instructions set.
Nick Clifton
2018-08-17 12:32:51 UTC
Permalink
Hi Paul,
Post by Paul Hua
Please review this series patch.
So sorry - I had become so used to Maciej reviewing these patches
that I just assumed that he would handle this series too.

The patches themselves are fine, but there is one problem - you
need to update the gold linker as well. This still has references
to the deprecated Loongson3a name and no code for the gs464e or gs264
variants...

Also, with the patches applied I did find a few regressions in some
of the binutils test suites:

Checking Binutils in: mips64-openbsd ...
LD REGRESSION: MIPS incompatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs264e -32"

Checking Binutils in: mips64el-openbsd ...
LD REGRESSION: MIPS incompatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs264e -32"

Checking Binutils in: mips-sgi-irix6 ...
LD REGRESSION: MIPS compatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs264e -32"

Checking Binutils in: mipsisa32el-linux ...
GAS REGRESSION: Loongson CAM tests
GAS REGRESSION: Loongson EXT2 tests

Checking Binutils in: tx39-elf ...
GAS REGRESSION: Loongson CAM tests
GAS REGRESSION: Loongson EXT2 tests


Would you mind taking a look at these please ? I suspect that they
will just turn out to be cases where it is inappropriate to run the
test, but I would like to be sure.

Cheers
Nick

PS. Are you able to comit patches yourself, or do you need me to do that ?
Maciej W. Rozycki
2018-08-17 13:50:08 UTC
Permalink
Hi Nick,
Post by Nick Clifton
So sorry - I had become so used to Maciej reviewing these patches
that I just assumed that he would handle this series too.
The Loongson line are actively developed microprocessors, rather than
legacy MIPS I-IV ISA implementations, so I won't be handling such reviews.
Sorry.

Maciej
Paul Hua
2018-08-18 08:27:54 UTC
Permalink
Hi Nick,

Thanks for your review.
Post by Nick Clifton
The patches themselves are fine, but there is one problem - you
need to update the gold linker as well. This still has references
to the deprecated Loongson3a name and no code for the gs464e or gs264
variants...
The new patch will update gold linker.
Post by Nick Clifton
Also, with the patches applied I did find a few regressions in some
Checking Binutils in: mips64-openbsd ...
LD REGRESSION: MIPS incompatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs264e -32"
Checking Binutils in: mips64el-openbsd ...
LD REGRESSION: MIPS incompatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs264e -32"
Checking Binutils in: mips-sgi-irix6 ...
LD REGRESSION: MIPS compatible objects: "-march=gs464 -32"
LD REGRESSION: MIPS compatible objects: "-march=gs264e -32"
Checking Binutils in: mipsisa32el-linux ...
GAS REGRESSION: Loongson CAM tests
GAS REGRESSION: Loongson EXT2 tests
Checking Binutils in: tx39-elf ...
GAS REGRESSION: Loongson CAM tests
GAS REGRESSION: Loongson EXT2 tests
Would you mind taking a look at these please ? I suspect that they
will just turn out to be cases where it is inappropriate to run the
test, but I would like to be sure.
I will look at these tests, is there a script or document for test all
of these triples.
I just configure with --target=mips64el-linux-gnu and make, make
check, no regression.
Post by Nick Clifton
Cheers
Nick
PS. Are you able to comit patches yourself, or do you need me to do that ?
I would like to commit patches myself, but not have write access yet,
how to get write access?

Paul Hua
Nick Clifton
2018-08-20 10:58:20 UTC
Permalink
Hi Paul,
Post by Paul Hua
The new patch will update gold linker.
Excellent - thanks.
Post by Paul Hua
Post by Nick Clifton
Also, with the patches applied I did find a few regressions in some
Checking Binutils in: mips64-openbsd ...
Checking Binutils in: mips64el-openbsd ...
Checking Binutils in: mips-sgi-irix6 ...
Checking Binutils in: mipsisa32el-linux ...
Checking Binutils in: tx39-elf ...
I will look at these tests, is there a script or document for test all
of these triples.
Nope. :-( I just build lots of different toolchains and have a makefile
to run the testsuites in all of them. If you want I can supply you with
copies of the makefiles that I use.
Post by Paul Hua
I just configure with --target=mips64el-linux-gnu and make, make
check, no regression.
Right - that toolchain is fine. It is the other mips variants
that are causing issues.
Post by Paul Hua
Post by Nick Clifton
PS. Are you able to comit patches yourself, or do you need me to do that ?
I would like to commit patches myself, but not have write access yet,
how to get write access?
Apply here:

https://sourceware.org/cgi-bin/pdw/ps_form.cgi

You can use my email address as the approver...

Cheers
Nick
Paul Hua
2018-08-24 13:38:45 UTC
Permalink
Hi Nick,
Post by Nick Clifton
Post by Paul Hua
The new patch will update gold linker.
Excellent - thanks.
The new v3 patch is here:
https://sourceware.org/ml/binutils/2018-08/msg00429.html.
Post by Nick Clifton
Post by Paul Hua
Post by Nick Clifton
Also, with the patches applied I did find a few regressions in some
Checking Binutils in: mips64-openbsd ...
Checking Binutils in: mips64el-openbsd ...
The mips64*-openbsd failure was fixed by "[PATCH] MIPS TESTSUITE LD:
Skip 32bit test if ld emulations not support"
Post by Nick Clifton
Post by Paul Hua
Post by Nick Clifton
Checking Binutils in: mips-sgi-irix6 ...
The mips-sgi-irix6 seems obsolete.

*** Configuration mips-sgi-irix6 is obsolete.
*** Support has been REMOVED.
Post by Nick Clifton
Post by Paul Hua
Post by Nick Clifton
Checking Binutils in: mipsisa32el-linux ...
Checking Binutils in: tx39-elf ...
Fixed by run those test under loognson target.

Thanks.

Paul Hua.
Paul Hua
2018-08-25 01:45:42 UTC
Permalink
Post by Paul Hua
Post by Nick Clifton
Checking Binutils in: mips-sgi-irix6 ...
The mips-sgi-irix6 seems obsolete.
*** Configuration mips-sgi-irix6 is obsolete.
*** Support has been REMOVED.
Sorry the mips-sgi-irix6 removed on gdb, binutils still works.

A fix patch "[PATCH] MIPS TESTSUITE LD: Skip o32 flags check on
mips*-*-irix*" is here:
https://sourceware.org/ml/binutils/2018-08/msg00438.html

Loading...