Simplify ftrace_hook()

We now have a test to prove that its transitive closure doesn't perform
floating point computations.
This commit is contained in:
Justine Tunney 2023-06-06 11:10:38 -07:00
parent 61b9677c05
commit b6182db813
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
11 changed files with 142 additions and 85 deletions

View file

@ -446,6 +446,7 @@ typedef struct {
#endif
#ifndef optimizespeed
/* warning: corrupts frame pointer; only use on leaf functions */
#if !defined(__STRICT_ANSI__) && \
((__GNUC__ + 0) * 100 + (__GNUC_MINOR__ + 0) >= 407 || \
__has_attribute(__optimize__))

View file

@ -27,16 +27,6 @@ ftrace_hook:
ret
1: push %rbp
mov %rsp,%rbp
and $-16,%rsp
sub $0x80,%rsp
movaps %xmm0,0x00(%rsp)
movaps %xmm1,0x10(%rsp)
movaps %xmm2,0x20(%rsp)
movaps %xmm3,0x30(%rsp)
movaps %xmm4,0x40(%rsp)
movaps %xmm5,0x50(%rsp)
movaps %xmm6,0x60(%rsp)
movaps %xmm7,0x70(%rsp)
push %rax
push %rax
push %rdi
@ -45,11 +35,7 @@ ftrace_hook:
push %rcx
push %r8
push %r9
push %r10
push %r11
call ftracer
pop %r11
pop %r10
pop %r9
pop %r8
pop %rcx
@ -58,15 +44,7 @@ ftrace_hook:
pop %rdi
pop %rax
pop %rax
movaps 0x00(%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps 0x20(%rsp),%xmm2
movaps 0x30(%rsp),%xmm3
movaps 0x40(%rsp),%xmm4
movaps 0x50(%rsp),%xmm5
movaps 0x60(%rsp),%xmm6
movaps 0x70(%rsp),%xmm7
leave
pop %rbp
ret
#elif defined(__aarch64__)