Skip to content
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

Closed
fxcoudert opened this issue Aug 31, 2020 · 1 comment
Closed

Comments

@fxcoudert
Copy link
Contributor

Reduced from gcc.dg/builtins-64.c:

$ cat builtins-64.c 
/* { dg-do run } */
/* { dg-require-effective-target alloca } */

int main ()
{
  char *mem = __builtin_alloca (40);
  __builtin___clear_cache (mem, mem + 40);
  return 0;
}
$ ./a.out
zsh: illegal hardware instruction  ./a.out

The backtrace is:

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=1, subcode=0xd53b0023)
    frame #0: 0x0000000100003f30 a.out`__aarch64_sync_cache_range(base=0x000000016fdffa40, end=0x000000016fdffa68) at sync-cache.c:42:5
   39  	  if (! cache_info)
   40  	    /* CTR_EL0 [3:0] contains log2 of icache line size in words.
   41  	       CTR_EL0 [19:16] contains log2 of dcache line size in words.  */
-> 42  	    asm volatile ("mrs\t%0, ctr_el0":"=r" (cache_info));
   43  	
   44  	  icache_lsize = 4 << (cache_info & 0xF);
   45  	  dcache_lsize = 4 << ((cache_info >> 16) & 0xF);
Target 0: (a.out) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=1, subcode=0xd53b0023)
  * frame #0: 0x0000000100003f30 a.out`__aarch64_sync_cache_range(base=0x000000016fdffa40, end=0x000000016fdffa68) at sync-cache.c:42:5
    frame #1: 0x0000000100003ef4 a.out`main + 52
    frame #2: 0x00000001d29e8a04 libdyld.dylib`start + 4

The disassembly from gcc is:

	.arch armv8-a
	.text
	.align	2
	.globl _main
_main:
LFB0:
	.cfi_startproc
	stp	x29, x30, [sp, -32]!
	.cfi_def_cfa_offset 32
	.cfi_offset 29, -32
	.cfi_offset 30, -24
	mov	x29, sp
	.cfi_def_cfa_register 29
	sub	sp, sp, #48
	mov	x0, sp
	add	x0, x0, 15
	lsr	x0, x0, 4
	lsl	x0, x0, 4
	str	x0, [x29, 24]
	ldr	x0, [x29, 24]
	add	x0, x0, 40
	mov	x1, x0
	ldr	x0, [x29, 24]
	bl	___clear_cache
	mov	w0, 0
	mov	sp, x29
	ldp	x29, x30, [sp], 32
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa 31, 0
	ret
	.cfi_endproc

while clang does:

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 11, 0	sdk_version 11, 0
	.globl	_main                   ; -- Begin function main
	.p2align	2
_main:                                  ; @main
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #80             ; =80
	stp	x29, x30, [sp, #64]     ; 16-byte Folded Spill
	add	x29, sp, #64            ; =64
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	adrp	x8, ___stack_chk_guard@GOTPAGE
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
	ldr	x8, [x8]
	stur	x8, [x29, #-8]
	mov	w9, #0
	str	w9, [sp, #12]
	add	x8, sp, #16             ; =16
	str	x8, [sp]
	ldr	x8, [sp]
	add	x1, x8, #40             ; =40
	mov	x0, x8
	bl	___clear_cache
	adrp	x8, ___stack_chk_guard@GOTPAGE
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
	ldr	x8, [x8]
	ldur	x10, [x29, #-8]
	subs	x8, x8, x10
	b.ne	LBB0_2
	b	LBB0_1
LBB0_1:
	mov	w0, #0
	ldp	x29, x30, [sp, #64]     ; 16-byte Folded Reload
	add	sp, sp, #80             ; =80
	ret
LBB0_2:
	bl	___stack_chk_fail
	brk	#0x1
	.cfi_endproc
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
@iains
Copy link
Owner

iains commented Sep 3, 2020

should be fixed.

@iains iains closed this as completed Sep 3, 2020
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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants