mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-14 06:59:10 +00:00
Get --ftrace working on aarch64
This change implements a new approach to function call logging, that's based on the GCC flag: -fpatchable-function-entry. Read the commentary in build/config.mk to learn how it works.
This commit is contained in:
parent
5b908bc756
commit
eb40cb371d
934 changed files with 2259 additions and 1268 deletions
|
@ -41,11 +41,11 @@ $(DSP_BMP_A).pkg: \
|
|||
|
||||
o/$(MODE)/dsp/bmp/float2short.o \
|
||||
o/$(MODE)/dsp/bmp/scalevolume.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
$(MATHEMATICAL)
|
||||
|
||||
o/tiny/dsp/bmp/scalevolume.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-Os
|
||||
|
||||
DSP_BMP_LIBS = $(foreach x,$(DSP_BMP_ARTIFACTS),$($(x)))
|
||||
|
|
|
@ -40,15 +40,15 @@ o/$(MODE)/dsp/core/magikarp.o \
|
|||
o/$(MODE)/dsp/core/c93654369.o \
|
||||
o/$(MODE)/dsp/core/float2short.o \
|
||||
o/$(MODE)/dsp/core/scalevolume.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
$(MATHEMATICAL)
|
||||
|
||||
o/tiny/dsp/core/scalevolume.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-Os
|
||||
|
||||
o/$(MODE)/dsp/core/det3.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-ffast-math
|
||||
|
||||
DSP_CORE_LIBS = $(foreach x,$(DSP_CORE_ARTIFACTS),$($(x)))
|
||||
|
|
|
@ -52,7 +52,7 @@ $(DSP_MPEG_A).pkg: \
|
|||
$(foreach x,$(DSP_MPEG_A_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/dsp/mpeg/clamp4int256-k8.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-Os
|
||||
|
||||
DSP_MPEG_LIBS = $(foreach x,$(DSP_MPEG_ARTIFACTS),$($(x)))
|
||||
|
|
|
@ -52,7 +52,7 @@ o/$(MODE)/dsp/scale/cdecimate2xuint8x8.o \
|
|||
o/$(MODE)/dsp/scale/gyarados.o \
|
||||
o/$(MODE)/dsp/scale/magikarp.o \
|
||||
o/$(MODE)/dsp/scale/scale.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
$(MATHEMATICAL)
|
||||
|
||||
DSP_SCALE_LIBS = $(foreach x,$(DSP_SCALE_ARTIFACTS),$($(x)))
|
||||
|
|
|
@ -54,12 +54,12 @@ $(DSP_TTY_A).pkg: \
|
|||
$(foreach x,$(DSP_TTY_A_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/dsp/tty/ttyraster.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
$(MATHEMATICAL)
|
||||
|
||||
ifeq ($(ARCH), aarch64)
|
||||
# takes 14 seconds to compile with aarch64 gcc
|
||||
o/$(MODE)/dsp/tty/ttyraster.o: private OVERRIDE_CFLAGS += -O1
|
||||
o/$(MODE)/dsp/tty/ttyraster.o: private CFLAGS += -O1
|
||||
o/$(MODE)/dsp/tty/ttyraster.o: private QUOTA += -C128
|
||||
endif
|
||||
|
||||
|
|
|
@ -23,10 +23,11 @@
|
|||
// @param rdi points to nonempty array
|
||||
// @param rsi is item count divisible by 16
|
||||
// @note needs avx2 (haswell+)
|
||||
.ftrace1
|
||||
windex_avx2:
|
||||
.ftrace2
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
and $-32,%rsp
|
||||
sub $32,%rsp
|
||||
vmovdqa (%rdi),%ymm1
|
||||
|
|
|
@ -23,10 +23,11 @@
|
|||
// @param rdi points to nonempty array
|
||||
// @param esi is 16-byte aligned 8+ / 8 multiple array item count
|
||||
// @note needs sse4 (nehalem+)
|
||||
.ftrace1
|
||||
windex_sse4:
|
||||
.ftrace2
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov $8,%eax
|
||||
sub $32,%rsp
|
||||
movdqa (%rdi),%xmm2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue