-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Toolchain: GCC 15 #25920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Toolchain: GCC 15 #25920
Changes from all commits
12c5b74
74e28c0
d92ecb5
5baa85f
1b80b35
f11ca8f
b0b4df0
63db89a
b3ef671
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,18 +16,16 @@ void* memcpy(void* dest_ptr, void const* src_ptr, size_t n) | |
// FIXME: Support starting at an unaligned address. | ||
if (!(dest & 0x3) && !(src & 0x3) && n >= 12) { | ||
size_t size_ts = n / sizeof(size_t); | ||
n -= size_ts * sizeof(size_t); | ||
asm volatile( | ||
"rep movsq\n" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And why did you move the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not sure about the as for the code move, if I understand the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh yes, you are right about the inline assembly overriding The The x86-64 psABI only requires DF to be clear on function entry/exit, so I think it can technically be set when control flow reaches the inline asm. I could swear it didn't work without the |
||
: "=S"(src), "=D"(dest) | ||
: "S"(src), "D"(dest), "c"(size_ts) | ||
: "memory"); | ||
n -= size_ts * sizeof(size_t); | ||
: "+S"(src), "+D"(dest), "+c"(size_ts)::"memory"); | ||
if (n == 0) | ||
return dest_ptr; | ||
} | ||
asm volatile( | ||
"rep movsb\n" ::"S"(src), "D"(dest), "c"(n) | ||
: "memory"); | ||
"rep movsb\n" | ||
: "+S"(src), "+D"(dest), "+c"(n)::"memory"); | ||
#else | ||
u8* pd = (u8*)dest_ptr; | ||
u8 const* ps = (u8 const*)src_ptr; | ||
|
@@ -57,19 +55,19 @@ void* memset(void* dest_ptr, int c, size_t n) | |
if (!(dest & 0x3) && n >= 12) { | ||
size_t size_ts = n / sizeof(size_t); | ||
size_t expanded_c = explode_byte((u8)c); | ||
n -= size_ts * sizeof(size_t); | ||
asm volatile( | ||
"rep stosq\n" | ||
: "=D"(dest) | ||
: "D"(dest), "c"(size_ts), "a"(expanded_c) | ||
: "+D"(dest), "+c"(size_ts) | ||
: "a"(expanded_c) | ||
: "memory"); | ||
n -= size_ts * sizeof(size_t); | ||
if (n == 0) | ||
return dest_ptr; | ||
} | ||
asm volatile( | ||
"rep stosb\n" | ||
: "=D"(dest), "=c"(n) | ||
: "0"(dest), "1"(n), "a"(c) | ||
: "+D"(dest), "+c"(n) | ||
: "a"(c) | ||
: "memory"); | ||
#else | ||
u8* pd = (u8*)dest_ptr; | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,10 +31,10 @@ Co-Authored-By: Shannon Booth <[email protected]> | |
create mode 100644 gcc/config/serenity.opt.urls | ||
|
||
diff --git a/gcc/config.gcc b/gcc/config.gcc | ||
index 95c91ee02be4403567d63ac566ab8d3b956a6d74..43e2d9b03a5ce4fc2baf6a2268fdbf77467526f5 100644 | ||
index 40b50dc969ede4418b305ca01869ec157e054283..550573f66da4982f21334a16157220c6b3bca81f 100644 | ||
--- a/gcc/config.gcc | ||
+++ b/gcc/config.gcc | ||
@@ -722,6 +722,18 @@ x86_cpus="generic intel" | ||
@@ -723,6 +723,18 @@ x86_cpus="generic intel" | ||
|
||
# Common parts for widely ported systems. | ||
case ${target} in | ||
|
@@ -53,7 +53,7 @@ index 95c91ee02be4403567d63ac566ab8d3b956a6d74..43e2d9b03a5ce4fc2baf6a2268fdbf77 | |
*-*-darwin*) | ||
tmake_file="t-darwin " | ||
tm_file="${tm_file} darwin.h" | ||
@@ -1189,6 +1201,17 @@ case ${target} in | ||
@@ -1186,6 +1198,17 @@ case ${target} in | ||
esac | ||
|
||
case ${target} in | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,15 +15,15 @@ Co-Authored-By: Philip Herron <[email protected]> | |
Co-Authored-By: Shannon Booth <[email protected]> | ||
--- | ||
gcc/configure | 3 +++ | ||
libgcc/config.host | 17 +++++++++++++++++ | ||
libgcc/config.host | 18 ++++++++++++++++++ | ||
libgcc/unwind-dw2-fde-dip.c | 6 ++++++ | ||
3 files changed, 26 insertions(+) | ||
3 files changed, 27 insertions(+) | ||
|
||
diff --git a/gcc/configure b/gcc/configure | ||
index abc8bfdc24432e766eb05dcd8492b65acc47a65f..0160b4e986a5f58aa30ccc6e275a31fc9ff9c2ae 100755 | ||
index 16965953f05160ea4572957144f305cc0cce4e18..63fbeab1be55e2a9bf6718f8a6d826bb7ecf7d27 100755 | ||
--- a/gcc/configure | ||
+++ b/gcc/configure | ||
@@ -33652,6 +33652,9 @@ case "$target" in | ||
@@ -33648,6 +33648,9 @@ case "$target" in | ||
*-linux-musl*) | ||
gcc_cv_target_dl_iterate_phdr=yes | ||
;; | ||
|
@@ -34,10 +34,10 @@ index abc8bfdc24432e766eb05dcd8492b65acc47a65f..0160b4e986a5f58aa30ccc6e275a31fc | |
|
||
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then | ||
diff --git a/libgcc/config.host b/libgcc/config.host | ||
index e75a7af647f6004ce004b4a9eb46949507727dff..3261e8e47184a3b5d6d21685e2d64f234b46bc4a 100644 | ||
index 6a88ee5a2dd0b1386b2a5f2fbb579953f8ce9441..5fc80843a52ba80469df05fd5162964c8d7ae322 100644 | ||
--- a/libgcc/config.host | ||
+++ b/libgcc/config.host | ||
@@ -1356,6 +1356,11 @@ riscv*-*-freebsd*) | ||
@@ -1358,6 +1358,11 @@ riscv*-*-freebsd*) | ||
tmake_file="${tmake_file} riscv/t-crtstuff riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc" | ||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o" | ||
;; | ||
|
@@ -49,7 +49,7 @@ index e75a7af647f6004ce004b4a9eb46949507727dff..3261e8e47184a3b5d6d21685e2d64f23 | |
riscv*-*-*) | ||
tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}" | ||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o" | ||
@@ -1569,6 +1574,18 @@ nvptx-*) | ||
@@ -1571,6 +1576,19 @@ nvptx-*) | ||
tmake_file="$tmake_file nvptx/t-nvptx" | ||
extra_parts="crt0.o" | ||
;; | ||
|
@@ -63,13 +63,14 @@ index e75a7af647f6004ce004b4a9eb46949507727dff..3261e8e47184a3b5d6d21685e2d64f23 | |
+ tmake_file="$tmake_file ${cpu_type}/t-aarch64" | ||
+ tmake_file="$tmake_file ${cpu_type}/t-lse t-slibgcc t-slibgcc-libgcc t-slibgcc-gld-nover" | ||
+ tmake_file="$tmake_file ${cpu_type}/t-softfp t-softfp t-crtfm" | ||
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h | ||
+ md_unwind_header=aarch64/aarch64-unwind.h | ||
+ ;; | ||
*) | ||
echo "*** Configuration ${host} not supported" 1>&2 | ||
exit 1 | ||
diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c | ||
index 57d0c8812b13a2bfa8ff9b5e031347ad9afd7032..729fd29d4a233950b2c836d91d02ea335875ac6b 100644 | ||
index 5c19838e0a3c34ea3b0420c552c0100276e5aab4..01138feee2a1c2c69a931c785a6f6614b7239c0f 100644 | ||
--- a/libgcc/unwind-dw2-fde-dip.c | ||
+++ b/libgcc/unwind-dw2-fde-dip.c | ||
@@ -57,6 +57,12 @@ | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,7 +17,7 @@ Co-Authored-By: Shannon Booth <[email protected]> | |
1 file changed, 1 deletion(-) | ||
|
||
diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc | ||
index e8e6c7ddecade26f21d335d4eb7dcc8a04866f7e..bbc99027ac12a2424866e051724a32c61b92eb03 100644 | ||
index 68cb3b31eeed48283af798febf88347f313f2db9..9fd05974fd0fb98eae36a8c215f5692ff6954769 100644 | ||
--- a/libgcc/config/t-slibgcc | ||
+++ b/libgcc/config/t-slibgcc | ||
@@ -26,7 +26,6 @@ SHLIB_MAP = @shlib_map_file@ | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -27,7 +27,7 @@ Co-Authored-By: Shannon Booth <[email protected]> | |
4 files changed, 14 insertions(+), 6 deletions(-) | ||
|
||
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 | ||
index 51a08bcc8b1d07d8ab9144caf80ba0406ae12fca..f1c816d2b6d5b070383a3b7d0e40d26ddb54147f 100644 | ||
index a0094c2dd95b43abc80d78cd87b85bc39ddf9eaf..d69a9eac17b868b9c726b3d6b0d80e53d3af68ea 100644 | ||
--- a/libstdc++-v3/acinclude.m4 | ||
+++ b/libstdc++-v3/acinclude.m4 | ||
@@ -1792,7 +1792,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [ | ||
|
@@ -49,7 +49,7 @@ index 51a08bcc8b1d07d8ab9144caf80ba0406ae12fca..f1c816d2b6d5b070383a3b7d0e40d26d | |
;; | ||
*) | ||
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure | ||
index 21abaeb07788142ecbb8a252dfe0b714c7c308c9..d5de656cc3cd7b3a9c4b82c292263426195b157d 100755 | ||
index 819a1d82876a156e27a831bdaa695d155c34e31f..0cd50a29ab76d8af432aefdcb07b43f15f70688a 100755 | ||
--- a/libstdc++-v3/configure | ||
+++ b/libstdc++-v3/configure | ||
@@ -12003,6 +12003,11 @@ else | ||
|
@@ -64,7 +64,7 @@ index 21abaeb07788142ecbb8a252dfe0b714c7c308c9..d5de656cc3cd7b3a9c4b82c292263426 | |
darwin*) | ||
# if libdl is installed we need to link against it | ||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 | ||
@@ -16679,7 +16684,7 @@ fi | ||
@@ -16680,7 +16685,7 @@ fi | ||
dragonfly* | freebsd*) | ||
enable_clocale_flag=dragonfly | ||
;; | ||
|
@@ -73,7 +73,7 @@ index 21abaeb07788142ecbb8a252dfe0b714c7c308c9..d5de656cc3cd7b3a9c4b82c292263426 | |
enable_clocale_flag=newlib | ||
;; | ||
*) | ||
@@ -21374,7 +21379,7 @@ fi | ||
@@ -21377,7 +21382,7 @@ fi | ||
ac_has_nanosleep=yes | ||
ac_has_sched_yield=yes | ||
;; | ||
|
@@ -82,7 +82,7 @@ index 21abaeb07788142ecbb8a252dfe0b714c7c308c9..d5de656cc3cd7b3a9c4b82c292263426 | |
ac_has_clock_monotonic=yes | ||
ac_has_clock_realtime=yes | ||
ac_has_nanosleep=yes | ||
@@ -28620,7 +28625,7 @@ case "${host}" in | ||
@@ -28654,7 +28659,7 @@ case "${host}" in | ||
# This is a freestanding configuration; there is nothing to do here. | ||
;; | ||
|
||
|
@@ -92,10 +92,10 @@ index 21abaeb07788142ecbb8a252dfe0b714c7c308c9..d5de656cc3cd7b3a9c4b82c292263426 | |
|
||
$as_echo "#define HAVE_ASINF 1" >>confdefs.h | ||
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host | ||
index 7bc430716168748b96053d0c4d7785268706dd1c..546c72a474c1d8dcf20c22ee09d7a0ba941b0e1c 100644 | ||
index 253e5a9ad0dbe0698e3672cbee1c89eab8f2702d..45a22282657499d3a3c747f19110f63cbb044995 100644 | ||
--- a/libstdc++-v3/configure.host | ||
+++ b/libstdc++-v3/configure.host | ||
@@ -297,6 +297,9 @@ case "${host_os}" in | ||
@@ -307,6 +307,9 @@ case "${host_os}" in | ||
# Use libatomic if necessary and avoid libstdc++ specific atomicity support | ||
atomicity_dir="cpu/generic/atomicity_builtins" | ||
;; | ||
|
Uh oh!
There was an error while loading. Please reload this page.