(EXTRA_DLL_OFILES): Remove. (DLL_OFILES): Remove EXTRA_DLL_OFILES. (ASFLAGS): Define as -D_WIN64 on x86_64. (GMON_OFILES): Add mcountFunc.o. ($(srcdir)/$(TLSOFFSETS_H)): Use target_cpu rather than CONFIG_DIR. * configure.ac (CONFIG_DIR): Remove definition. * configure: Regenerate. * gcrt0.c: Use latest version from Mingw-w64 project. * gmon.c: Ditto. * gmon.h: Ditto. * mcount.c: Ditto. * mcountFunc.S: Ditto, new file. * profil.c: Ditto. * profil.h: Ditto. * config: Remove entire directory.
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /**
 | |
|  * This file has no copyright assigned and is placed in the Public Domain.
 | |
|  * This file is part of the mingw-w64 runtime package.
 | |
|  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 | |
|  */
 | |
| #include <_mingw_mac.h>
 | |
| 
 | |
| 	.file "mcountFunc.S"
 | |
| 	.text
 | |
| #ifdef _WIN64
 | |
| 	.align 8
 | |
| #else
 | |
| 	.align 4
 | |
| #endif
 | |
| 
 | |
| /* gcc always assumes the mcount public symbol has a single leading underscore
 | |
|    for our target.  See gcc/config/i386.h; it isn't overridden in
 | |
|    config/i386/cygming.h or any other places for mingw */
 | |
| .globl _mcount
 | |
|         .def    _mcount;  .scl    2;      .type   32;     .endef
 | |
| _mcount:
 | |
| #ifndef _WIN64
 | |
| 	push %ebp
 | |
| 	mov %esp, %ebp
 | |
| 	push %eax
 | |
| 	push %ecx
 | |
| 	push %edx
 | |
| 	movl 4(%ebp),%edx
 | |
| 	movl (%ebp),%eax
 | |
| 	movl 4(%eax),%eax
 | |
| 	push %edx
 | |
| 	push %eax
 | |
| 	call __MINGW_USYMBOL(_mcount_private)
 | |
| 	add $8, %esp
 | |
| 	pop %edx
 | |
| 	pop %ecx
 | |
| 	pop %eax
 | |
| 	leave
 | |
| 	ret
 | |
| #else
 | |
| 	push %rbp
 | |
| 	mov %rsp, %rbp
 | |
| 	push %rax
 | |
| 	push %rcx
 | |
| 	push %rdx
 | |
| 	push %r8
 | |
| 	push %r9
 | |
| 	push %r10
 | |
| 	push %r11
 | |
| 	movq 8(%rbp),%rdx
 | |
| 	movq (%rbp),%rax
 | |
| 	movq 8(%rax),%rcx
 | |
| 	sub $40, %rsp
 | |
| 	call __MINGW_USYMBOL(_mcount_private)
 | |
| 	add $40, %rsp
 | |
| 	pop %r11
 | |
| 	pop %r10
 | |
| 	pop %r9
 | |
| 	pop %r8
 | |
| 	pop %rdx
 | |
| 	pop %rcx
 | |
| 	pop %rax
 | |
| 	leave
 | |
| 	ret
 | |
| #endif
 | |
| 
 | |
| /* gcc always assumes the mcount public symbol has a single leading underscore
 | |
|    for our target.  See gcc/config/i386.h; it isn't overridden in
 | |
|    config/i386/cygming.h or any other places for mingw.  This is the entry
 | |
|    for new prologue mechanism required for x64 seh calling convention.  */
 | |
| .globl __fentry__
 | |
|         .def    _mcount_top;  .scl    2;      .type   32;     .endef
 | |
| __fentry__:
 | |
| #ifndef _WIN64
 | |
| 	push %ebp
 | |
| 	mov %esp, %ebp
 | |
| 	push %eax
 | |
| 	push %ecx
 | |
| 	push %edx
 | |
| 	movl 4(%ebp),%edx
 | |
| 	movl 8(%ebp),%eax
 | |
| 	push %edx
 | |
| 	push %eax
 | |
| 	call __MINGW_USYMBOL(_mcount_private)
 | |
| 	add $8, %esp
 | |
| 	pop %edx
 | |
| 	pop %ecx
 | |
| 	pop %eax
 | |
| 	leave
 | |
| 	ret
 | |
| #else
 | |
| 	push %rbp
 | |
| 	mov %rsp, %rbp
 | |
| 	push %rax
 | |
| 	push %rcx
 | |
| 	push %rdx
 | |
| 	push %r8
 | |
| 	push %r9
 | |
| 	push %r10
 | |
| 	push %r11
 | |
| 	movq 8(%rbp),%rdx
 | |
| 	movq 16(%rbp),%rcx
 | |
| 	sub $40, %rsp
 | |
| 	call __MINGW_USYMBOL(_mcount_private)
 | |
| 	add $40, %rsp
 | |
| 	pop %r11
 | |
| 	pop %r10
 | |
| 	pop %r9
 | |
| 	pop %r8
 | |
| 	pop %rdx
 | |
| 	pop %rcx
 | |
| 	pop %rax
 | |
| 	leave
 | |
| 	ret
 | |
| #endif
 |