-
Notifications
You must be signed in to change notification settings - Fork 34
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
__builtin___clear_cache gives “illegal hardware instruction” #17
Comments
iains
added a commit
that referenced
this issue
Sep 3, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
should be fixed. |
iains
added a commit
that referenced
this issue
Sep 5, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Sep 7, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Sep 12, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Sep 25, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Sep 29, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Oct 4, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Oct 12, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Oct 17, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Oct 25, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Nov 1, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
pushed a commit
that referenced
this issue
Nov 7, 2020
Enable thumb1_gen_const_int to generate RTL or asm depending on the context, so that we avoid duplicating code to handle constants in Thumb-1 with -mpure-code. Use a template so that the algorithm is effectively shared, and rely on two classes to handle the actual emission as RTL or asm. The generated sequence is improved to handle right-shiftable and small values with less instructions. We now generate: 128: movs r0, r0, #128 264: movs r3, #33 lsls r3, #3 510: movs r3, #255 lsls r3, #1 512: movs r3, #1 lsls r3, #9 764: movs r3, #191 lsls r3, #2 65536: movs r3, #1 lsls r3, #16 0x123456: movs r3, #18 ;0x12 lsls r3, #8 adds r3, #52 ;0x34 lsls r3, #8 adds r3, #86 ;0x56 0x1123456: movs r3, #137 ;0x89 lsls r3, #8 adds r3, #26 ;0x1a lsls r3, #8 adds r3, #43 ;0x2b lsls r3, #1 0x1000010: movs r3, #16 lsls r3, #16 adds r3, #1 lsls r3, #4 0x1000011: movs r3, #1 lsls r3, #24 adds r3, #17 -8192: movs r3, #1 lsls r3, #13 rsbs r3, #0 The patch adds a testcase which does not fully exercise thumb1_gen_const_int, as other existing patterns already catch small constants. These parts of thumb1_gen_const_int are used by arm_thumb1_mi_thunk. 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New classes. (thumb1_gen_const_int): Rename to ... (thumb1_gen_const_int_1): ... New helper function. Add capability to emit either RTL or asm, improve generated code. (thumb1_gen_const_int_rtl): New function. * config/arm/arm-protos.h (thumb1_gen_const_int): Rename to thumb1_gen_const_int_rtl. * config/arm/thumb1.md: Call thumb1_gen_const_int_rtl instead of thumb1_gen_const_int. gcc/testsuite/ * gcc.target/arm/pure-code/no-literal-pool-m0.c: New.
iains
added a commit
that referenced
this issue
Nov 7, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Nov 15, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Nov 22, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Nov 29, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Dec 6, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Dec 6, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Dec 19, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Dec 20, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Dec 26, 2020
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Jan 4, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Jan 11, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Jan 19, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Jan 24, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
omus
pushed a commit
to omus/gcc-darwin-arm64
that referenced
this issue
Jan 27, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue iains#17
omus
pushed a commit
to omus/gcc-darwin-arm64
that referenced
this issue
Jan 27, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue iains#17
iains
added a commit
that referenced
this issue
Jan 31, 2021
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Feb 6, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Feb 12, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Feb 19, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Feb 26, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Mar 5, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Mar 12, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Mar 19, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Mar 26, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Apr 2, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Apr 28, 2022
The sys_icache_invalidate() function is the right one to use. The fixes issue #17
iains
added a commit
that referenced
this issue
Oct 22, 2022
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Nov 27, 2022
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Dec 3, 2022
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Dec 13, 2022
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Dec 29, 2022
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Feb 3, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
May 26, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jun 3, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jun 10, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jun 22, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jun 25, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jun 29, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jul 27, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Jul 27, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Aug 10, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Aug 13, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Aug 15, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Aug 20, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Sep 4, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
iains
added a commit
that referenced
this issue
Sep 4, 2023
1. libgcc, aarch64, Darwin: Initial libgcc boiler-plate changes. Initial changes to build libgcc for aarch64 Darwin (declare the port, handle Mach-O assembler syntax and arrange for building the main extra pieces). 2. libgcc, aarch64, Darwin: Do not build legacy EH shim. Darwin aarch64 does not exist for macOS 10.6, so there is no need to build a shim to target it. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> libgcc/ * config.host: Omit the Darwin10 unwinder shim for aarch64 Darwin. 3. libgcc, aarch64, Darwin: Darwin should use an OS call to clear caches. The sys_icache_invalidate() function is the right one to use. The fixes issue #17 4. libgcc, aarch64, Darwin: Enable heap trampolines.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Reduced from
gcc.dg/builtins-64.c
:The backtrace is:
The disassembly from gcc is:
while clang does:
The text was updated successfully, but these errors were encountered: