mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-28 07:18:30 +00:00
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:
parent
61b9677c05
commit
b6182db813
11 changed files with 142 additions and 85 deletions
|
@ -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__))
|
||||
|
|
|
@ -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__)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue