Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
cmucl
cmucl
Commits
28a12603
Commit
28a12603
authored
Aug 28, 2020
by
Raymond Toy
Browse files
Merge branch 'master' into rtoy-issue-76-add-ansi-tests-to-ci
parents
9514ed06
9b7c0185
Pipeline
#1791
failed with stage
in 18 minutes and 11 seconds
Changes
12
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
28a12603
...
...
@@ -14,7 +14,7 @@ linux-runner:
-
mkdir snapshot
-
(cd snapshot; tar xjf ../cmucl-$version-linux.tar.bz2; tar xjf ../cmucl-$version-linux.extra.tar.bz2)
script
:
-
bin/build.sh $bootstrap -C "" -o snapshot/bin/lisp
-
bin/build.sh $bootstrap
-R
-C "" -o snapshot/bin/lisp
-
bin/make-dist.sh -I dist linux-4
-
bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
-
cd ansi-test
...
...
@@ -31,7 +31,7 @@ osx-runner:
-
mkdir snapshot
-
(cd snapshot; tar xjf ../cmucl-$version-darwin.tar.bz2)
script
:
-
bin/build.sh $bootstrap -C "" -o snapshot/bin/lisp
-
bin/build.sh $bootstrap
-R
-C "" -o snapshot/bin/lisp
-
bin/make-dist.sh -I dist darwin-4
-
bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
-
cd ansi-test
...
...
src/code/unix-glibc2.lisp
deleted
100644 → 0
View file @
9514ed06
This diff is collapsed.
Click to expand it.
src/lisp/Config.x86_common
View file @
28a12603
...
...
@@ -45,10 +45,11 @@ endif
CPPFLAGS
:=
$(CPP_DEFINE_OPTIONS)
$(CPP_INCLUDE_OPTIONS)
CFLAGS
+=
-Wstrict-prototypes
-Wall
-g
-fno-omit-frame-pointer
# gcc 8.1.1 and 8.3.1 (and probably anything after 8.1.1?) won't
# produce a working lisp with -O2. Just use -O1.
CFLAGS
+=
-O1
ASFLAGS
=
-g
# Default optimization level. This can be changed in the individual
# configs.
COPT
=
-O2
ASFLAGS
=
-g
ASSEM_SRC
=
x86-assem.S
ARCH_SRC
=
x86-arch.c
...
...
src/lisp/Config.x86_darwin
View file @
28a12603
...
...
@@ -6,6 +6,7 @@ include Config.x86_common
# you have the SDK available.
MIN_VER
=
-mmacosx-version-min
=
10.6
CFLAGS
+=
$(COPT)
CPPFLAGS
+=
-DDARWIN
$(MIN_VER)
-m32
CFLAGS
+=
-g3
-mtune
=
generic
ASFLAGS
+=
-g3
$(MIN_VER)
...
...
src/lisp/Config.x86_freebsd
View file @
28a12603
...
...
@@ -3,6 +3,7 @@ include Config.x86_common
# Set the path to your verison of GCC here.
CC
=
gcc
-m32
CFLAGS
+=
$(COPT)
CPPFLAGS
+=
-march
=
pentium4
-mfpmath
=
sse
UNDEFSYMPATTERN
=
-Xlinker
-u
-Xlinker
&
...
...
src/lisp/Config.x86_linux
View file @
28a12603
# -*- Mode: makefile -*-
include
Config.x86_common
# gcc 8.1.1 and 8.3.1 (and probably anything after 8.1.1?) won't
# produce a working lisp with -O2. Just use -O1.
COPT
=
-O2
CFLAGS
+=
$(COPT)
CPPFLAGS
+=
-m32
-D__NO_CTYPE
-D_GNU_SOURCE
CFLAGS
+=
-rdynamic
-march
=
pentium4
-mfpmath
=
sse
-mtune
=
generic
...
...
src/lisp/Config.x86_linux_clang
View file @
28a12603
...
...
@@ -3,6 +3,7 @@ include Config.x86_common
CC
=
clang
CPPFLAGS
+=
-m32
-D__NO_CTYPE
-D_GNU_SOURCE
CFLAGS
+=
$(COPT)
CFLAGS
+=
-march
=
pentium4
-mfpmath
=
sse
-mtune
=
generic
UNDEFSYMPATTERN
=
-Xlinker
-u
-Xlinker
&
...
...
src/lisp/Config.x86_netbsd
View file @
28a12603
# -*- Mode: makefile -*-
include
Config.x86_common
CFLAGS
+=
$(COPT)
CPPFLAGS
+=
-march
=
pentium4
-mfpmath
=
sse
UNDEFSYMPATTERN
=
-Xlinker
-u
-Xlinker
&
...
...
src/lisp/Config.x86_solaris_sunc
View file @
28a12603
...
...
@@ -2,6 +2,7 @@
include
Config.sparc_common
CC
=
cc
-xlibmieee
-g
CFLAGS
+=
$(COPT)
CFLAGS
+=
-Di386
CPP
=
cc
-E
DEPEND_FLAGS
=
-xM1
...
...
src/lisp/gencgc.c
View file @
28a12603
...
...
@@ -8416,6 +8416,7 @@ char *
alloc
(
int
nbytes
)
{
void
*
new_obj
;
#if !(defined(sparc) || (defined(DARWIN) && defined(__ppc__)))
/*
* *current-region-free-pointer* is the same as alloc-tn (=
...
...
@@ -8442,20 +8443,6 @@ alloc(int nbytes)
set_current_region_free
((
lispobj
)
new_free_pointer
);
break
;
}
else
if
(
bytes_allocated
<=
auto_gc_trigger
)
{
#if defined(i386) || defined(__x86_64)
/*
* Need to save and restore the FPU registers on x86, but only for
* sse2. See Ticket #61.
*
* Not needed by sparc or ppc because we never call alloc from
* Lisp directly to do allocation.
*/
FPU_STATE
(
fpu_state
);
if
(
fpu_mode
==
SSE2
)
{
save_fpu_state
(
fpu_state
);
}
#endif
/* Call gc_alloc. */
boxed_region
.
free_pointer
=
(
void
*
)
get_current_region_free
();
boxed_region
.
end_addr
=
...
...
@@ -8466,11 +8453,6 @@ alloc(int nbytes)
set_current_region_free
((
lispobj
)
boxed_region
.
free_pointer
);
set_current_region_end
((
lispobj
)
boxed_region
.
end_addr
);
#if defined(i386) || defined(__x86_64)
if
(
fpu_mode
==
SSE2
)
{
restore_fpu_state
(
fpu_state
);
}
#endif
break
;
}
else
{
/* Run GC and try again. */
...
...
src/lisp/x86-arch.h
View file @
28a12603
...
...
@@ -17,16 +17,14 @@ extern boolean os_support_sse2(void);
#define FPU_STATE_SIZE 27
/*
* Need 512 byte area, aligned on a 16-byte boundary. So allocate
* 512+16 bytes of space and let the routine adjust the appropriate
* alignment.
* Need 512 byte area, aligned on a 16-byte boundary.
*/
#define SSE_STATE_SIZE
((
512
+16)/4)
#define SSE_STATE_SIZE 512
/*
* Just use the SSE size for both x87 and sse2 since the SSE size is
* enough for either.
* enough for either.
Make sure it's on a 16-byte boundary.
*/
#define FPU_STATE(name)
in
t name[SSE_STATE_SIZE]
;
#define FPU_STATE(name)
u_int8_
t name[SSE_STATE_SIZE]
__attribute__((aligned(16)))
#endif
src/lisp/x86-assem.S
View file @
28a12603
...
...
@@ -382,7 +382,39 @@ ENDFUNC(fastcopy16)
*
%
eax
=
address
*/
FUNCDEF
(
alloc_overflow_sse2
)
STACK_PROLOGUE
(20)
#
Need
8
*
16
bytes
for
the
xmm
registers
,
and
space
to
save
ecx
#
and
edx
,
space
for
mxcsr
,
a
temp
,
and
one
arg
to
pass
to
alloc
.
#
That
's 8*16 + 5*4 = 148 bytes. Might as well have a few
#
more
so
the
xmm0
area
is
16
-
byte
aligned
.
That
makes
it
160
#
bytes
.
#
#
Stack
looks
like
:
#
#
+
160
#
+
144
->
xmm7
#
+
128
->
xmm6
#
+
112
->
xmm5
#
+
96
->
xmm4
#
+
80
->
xmm3
#
+
64
->
xmm2
#
+
48
->
xmm1
#
+
32
->
xmm0
#
+
20
->
unused
#
+
16
->
temp
#
+
12
->
mxcsr
#
+
8
->
save
ecx
#
+
4
->
save
edx
#
esp
+
0
->
arg
for
alloc
STACK_PROLOGUE
(160)
movapd
%
xmm0
,
(
32
+
0
*
16
)(%
esp
)
movapd
%
xmm1
,
(
32
+
1
*
16
)(%
esp
)
movapd
%
xmm2
,
(
32
+
2
*
16
)(%
esp
)
movapd
%
xmm3
,
(
32
+
3
*
16
)(%
esp
)
movapd
%
xmm4
,
(
32
+
4
*
16
)(%
esp
)
movapd
%
xmm5
,
(
32
+
5
*
16
)(%
esp
)
movapd
%
xmm6
,
(
32
+
6
*
16
)(%
esp
)
movapd
%
xmm7
,
(
32
+
7
*
16
)(%
esp
)
movl
%
ecx
,
8
(%
esp
)
#
Save
ecx
and
edx
registers
movl
%
edx
,
4
(%
esp
)
stmxcsr
12
(%
esp
)
#
Save
MXCSR
...
...
@@ -398,10 +430,20 @@ FUNCDEF(alloc_overflow_sse2)
movl
4
(%
esp
),
%
edx
#
Restore
edx
and
ecx
registers
.
eax
has
the
return
value
.
movl
8
(%
esp
),
%
ecx
ldmxcsr
12
(%
esp
)
movapd
(
32
+
0
*
16
)(%
esp
),
%
xmm0
movapd
(
32
+
1
*
16
)(%
esp
),
%
xmm1
movapd
(
32
+
2
*
16
)(%
esp
),
%
xmm2
movapd
(
32
+
3
*
16
)(%
esp
),
%
xmm3
movapd
(
32
+
4
*
16
)(%
esp
),
%
xmm4
movapd
(
32
+
5
*
16
)(%
esp
),
%
xmm5
movapd
(
32
+
6
*
16
)(%
esp
),
%
xmm6
movapd
(
32
+
7
*
16
)(%
esp
),
%
xmm7
STACK_EPILOGUE
ret
ENDFUNC
(
alloc_overflow_sse2
)
#ifdef LINKAGE_TABLE
/*
Call
into
C
code
to
resolve
a
linkage
entry
.
The
initial
code
in
the
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment