Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit718aa43

Browse files
committed
Further tidy-up for old CPU architectures.
Further to commit92d70b7, let's drop the code we carry for thefollowing untested architectures: M68K, M88K, M32R, SuperH. We have noidea if anything actually works there, and surely as vintage hardwareand microcontrollers they would be underpowered for modern purposes.We could always consider re-adding SuperH based on evidence of usage andbuild farm support, if someone shows up to provide it.While here, SPARC is usually written in all caps.Suggested-by: Tom Lane <tgl@sss.pgh.pa.us>Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>Reviewed-by: Robert Haas <robertmhaas@gmail.com> (the idea, not the patch)Discussion:https://postgr.es/m/959917.1657522169%40sss.pgh.pa.us
1 parentb40baa9 commit718aa43

File tree

3 files changed

+2
-170
lines changed

3 files changed

+2
-170
lines changed

‎doc/src/sgml/installation.sgml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2125,11 +2125,10 @@ export MANPATH
21252125

21262126
<para>
21272127
In general, <productname>PostgreSQL</productname> can be expected to work on
2128-
these CPU architectures: x86, PowerPC, S/390,Sparc, ARM, MIPS, RISC-V,
2128+
these CPU architectures: x86, PowerPC, S/390,SPARC, ARM, MIPS, RISC-V,
21292129
and PA-RISC, including
21302130
big-endian, little-endian, 32-bit, and 64-bit variants where applicable.
2131-
Code support exists for M68K, M88K, M32R, and SuperH, but these
2132-
architectures are not known to have been tested recently. It is often
2131+
It is often
21332132
possible to build on an unsupported CPU type by configuring with
21342133
<option>--disable-spinlocks</option>, but performance will be poor.
21352134
</para>

‎src/backend/storage/lmgr/s_lock.c

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -220,71 +220,6 @@ update_spins_per_delay(int shared_spins_per_delay)
220220
}
221221

222222

223-
/*
224-
* Various TAS implementations that cannot live in s_lock.h as no inline
225-
* definition exists (yet).
226-
* In the future, get rid of tas.[cso] and fold it into this file.
227-
*
228-
* If you change something here, you will likely need to modify s_lock.h too,
229-
* because the definitions for these are split between this file and s_lock.h.
230-
*/
231-
232-
233-
#ifdefHAVE_SPINLOCKS/* skip spinlocks if requested */
234-
235-
236-
#if defined(__GNUC__)
237-
238-
/*
239-
* All the gcc flavors that are not inlined
240-
*/
241-
242-
243-
/*
244-
* Note: all the if-tests here probably ought to be testing gcc version
245-
* rather than platform, but I don't have adequate info to know what to
246-
* write. Ideally we'd flush all this in favor of the inline version.
247-
*/
248-
#if defined(__m68k__)&& !defined(__linux__)
249-
/* really means: extern int tas(slock_t* **lock); */
250-
staticvoid
251-
tas_dummy()
252-
{
253-
__asm__ __volatile__(
254-
#if (defined(__NetBSD__)|| defined(__OpenBSD__))&& defined(__ELF__)
255-
/* no underscore for label and % for registers */
256-
"\
257-
.globaltas \n\
258-
tas:\n\
259-
movel%sp@(0x4),%a0\n\
260-
tas %a0@\n\
261-
beq _success\n\
262-
moveq#-128,%d0\n\
263-
rts \n\
264-
_success:\n\
265-
moveq#0,%d0\n\
266-
rts \n"
267-
#else
268-
"\
269-
.global_tas\n\
270-
_tas:\n\
271-
movelsp@(0x4),a0\n\
272-
tas a0@\n\
273-
beq _success\n\
274-
moveq #-128,d0\n\
275-
rts\n\
276-
_success:\n\
277-
moveq #0,d0\n\
278-
rts\n"
279-
#endif/* (__NetBSD__ || __OpenBSD__) && __ELF__ */
280-
);
281-
}
282-
#endif/* __m68k__ && !__linux__ */
283-
#endif/* not __GNUC__ */
284-
#endif/* HAVE_SPINLOCKS */
285-
286-
287-
288223
/*****************************************************************************/
289224
#if defined(S_LOCK_TEST)
290225

‎src/include/storage/s_lock.h

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -498,56 +498,6 @@ do \
498498
#endif/* powerpc */
499499

500500

501-
/* Linux Motorola 68k */
502-
#if (defined(__mc68000__)|| defined(__m68k__))&& defined(__linux__)
503-
#defineHAS_TEST_AND_SET
504-
505-
typedefunsignedcharslock_t;
506-
507-
#defineTAS(lock) tas(lock)
508-
509-
static __inline__int
510-
tas(volatileslock_t*lock)
511-
{
512-
registerintrv;
513-
514-
__asm____volatile__(
515-
"clrl%0\n"
516-
"tas%1\n"
517-
"sne%0\n"
518-
:"=d"(rv),"+m"(*lock)
519-
:/* no inputs */
520-
:"memory","cc");
521-
returnrv;
522-
}
523-
524-
#endif/* (__mc68000__ || __m68k__) && __linux__ */
525-
526-
527-
/* Motorola 88k */
528-
#if defined(__m88k__)
529-
#defineHAS_TEST_AND_SET
530-
531-
typedefunsignedintslock_t;
532-
533-
#defineTAS(lock) tas(lock)
534-
535-
static __inline__int
536-
tas(volatileslock_t*lock)
537-
{
538-
registerslock_t_res=1;
539-
540-
__asm__ __volatile__(
541-
"xmem%0, %2, %%r0\n"
542-
:"+r"(_res),"+m"(*lock)
543-
:"r"(lock)
544-
:"memory");
545-
return (int)_res;
546-
}
547-
548-
#endif/* __m88k__ */
549-
550-
551501
#if defined(__mips__)&& !defined(__sgi)/* non-SGI MIPS */
552502
#defineHAS_TEST_AND_SET
553503

@@ -619,58 +569,6 @@ do \
619569
#endif/* __mips__ && !__sgi */
620570

621571

622-
#if defined(__m32r__)&& defined(HAVE_SYS_TAS_H)/* Renesas' M32R */
623-
#defineHAS_TEST_AND_SET
624-
625-
#include<sys/tas.h>
626-
627-
typedefintslock_t;
628-
629-
#defineTAS(lock) tas(lock)
630-
631-
#endif/* __m32r__ */
632-
633-
634-
#if defined(__sh__)/* Renesas' SuperH */
635-
#defineHAS_TEST_AND_SET
636-
637-
typedefunsignedcharslock_t;
638-
639-
#defineTAS(lock) tas(lock)
640-
641-
static __inline__int
642-
tas(volatileslock_t*lock)
643-
{
644-
registerint_res;
645-
646-
/*
647-
* This asm is coded as if %0 could be any register, but actually SuperH
648-
* restricts the target of xor-immediate to be R0. That's handled by
649-
* the "z" constraint on _res.
650-
*/
651-
__asm__ __volatile__(
652-
"tas.b @%2 \n"
653-
"movt %0 \n"
654-
"xor #1,%0 \n"
655-
:"=z"(_res),"+m"(*lock)
656-
:"r"(lock)
657-
:"memory","t");
658-
return_res;
659-
}
660-
661-
#endif/* __sh__ */
662-
663-
664-
/* These live in s_lock.c, but only for gcc */
665-
666-
667-
#if defined(__m68k__)&& !defined(__linux__)/* non-Linux Motorola 68k */
668-
#defineHAS_TEST_AND_SET
669-
670-
typedefunsignedcharslock_t;
671-
#endif
672-
673-
674572
#if defined(__hppa)|| defined(__hppa__)/* HP PA-RISC */
675573
/*
676574
* HP's PA-RISC

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp