Re: BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: wzssyqa@gmail.com
Cc: pgsql-bugs@lists.postgresql.org
Date: 2019-06-13T19:53:15Z
Lists: pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> MIPS r6 changes the encoding of LL/SC instruction,
> while the .set mips2 will force assembler to generate
> old encoding.
> ...
> In fact if we not willing to support MIPS I or any CPU without ll/sc
> at all, we can just remove .set mips2 here.

After further digging around, I'm liking the alternative of just
removing the ".set mips2" lines.  MIPS-I has been obsolete since 1989,
and the MIPS-II instruction set has a lot of other substantial advantages
over MIPS-I besides having LL/SC, so it's pretty hard to believe that
anyone is still using toolchains that default to assuming MIPS-I
instruction set.

Digging around in our archives, it looks like ".set mips2" was required
when it was added, but that was on the strength of testing with a
machine running Linux 2.4.27-r5k-cobalt.  We need to research when/if
Linux changed their default configuration.

			regards, tom lane



Commits

  1. Fix spinlock assembly code for MIPS so it works on MIPS r6.