]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Remove unused assembly function OPENSSL_wipe_cpu
authorTeddy Engel <engel.teddy@gmail.com>
Sat, 12 Apr 2025 11:51:55 +0000 (12:51 +0100)
committerPauli <ppzgs1@gmail.com>
Tue, 15 Apr 2025 22:24:19 +0000 (08:24 +1000)
CLA: trivial

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/27362)

crypto/alphacpuid.pl
crypto/armv4cpuid.pl
crypto/c64xpluscpuid.pl
crypto/ia64cpuid.S
crypto/pariscid.pl
crypto/ppccpuid.pl
crypto/s390xcpuid.pl
crypto/sparccpuid.S
crypto/x86_64cpuid.pl
crypto/x86cpuid.pl

index b96975038060f31956427159abe06caf519dec8c..ad2159a9b999d124fb82249f71391483719b0bc6 100644 (file)
@@ -22,59 +22,6 @@ OPENSSL_cpuid_setup:
        ret     ($26)
 .end   OPENSSL_cpuid_setup
 
-.globl OPENSSL_wipe_cpu
-.ent   OPENSSL_wipe_cpu
-OPENSSL_wipe_cpu:
-       .frame  $30,0,$26
-       .prologue 0
-       clr     $1
-       clr     $2
-       clr     $3
-       clr     $4
-       clr     $5
-       clr     $6
-       clr     $7
-       clr     $8
-       clr     $16
-       clr     $17
-       clr     $18
-       clr     $19
-       clr     $20
-       clr     $21
-       clr     $22
-       clr     $23
-       clr     $24
-       clr     $25
-       clr     $27
-       clr     $at
-       clr     $29
-       fclr    $f0
-       fclr    $f1
-       fclr    $f10
-       fclr    $f11
-       fclr    $f12
-       fclr    $f13
-       fclr    $f14
-       fclr    $f15
-       fclr    $f16
-       fclr    $f17
-       fclr    $f18
-       fclr    $f19
-       fclr    $f20
-       fclr    $f21
-       fclr    $f22
-       fclr    $f23
-       fclr    $f24
-       fclr    $f25
-       fclr    $f26
-       fclr    $f27
-       fclr    $f28
-       fclr    $f29
-       fclr    $f30
-       mov     $sp,$0
-       ret     ($26)
-.end   OPENSSL_wipe_cpu
-
 .globl OPENSSL_atomic_add
 .ent   OPENSSL_atomic_add
 OPENSSL_atomic_add:
index 9b933c70c4d8ab423c664ba14f0ade4780f31f95..1502f14f8bc22ae8833ff147775ba18eb06209e0 100644 (file)
@@ -207,47 +207,6 @@ _armv8_pmull_probe:
 .size  _armv8_pmull_probe,.-_armv8_pmull_probe
 #endif
 
-.global        OPENSSL_wipe_cpu
-.type  OPENSSL_wipe_cpu,%function
-OPENSSL_wipe_cpu:
-#if __ARM_MAX_ARCH__>=7
-       ldr     r0,.LOPENSSL_armcap
-       adr     r1,.LOPENSSL_armcap
-       ldr     r0,[r1,r0]
-#ifdef __APPLE__
-       ldr     r0,[r0]
-#endif
-#endif
-       eor     r2,r2,r2
-       eor     r3,r3,r3
-       eor     ip,ip,ip
-#if __ARM_MAX_ARCH__>=7
-       tst     r0,#1
-       beq     .Lwipe_done
-       veor    q0, q0, q0
-       veor    q1, q1, q1
-       veor    q2, q2, q2
-       veor    q3, q3, q3
-       veor    q8, q8, q8
-       veor    q9, q9, q9
-       veor    q10, q10, q10
-       veor    q11, q11, q11
-       veor    q12, q12, q12
-       veor    q13, q13, q13
-       veor    q14, q14, q14
-       veor    q15, q15, q15
-.Lwipe_done:
-#endif
-       mov     r0,sp
-#if __ARM_ARCH__>=5
-       bx      lr
-#else
-       tst     lr,#1
-       moveq   pc,lr
-       .word   0xe12fff1e      @ bx    lr
-#endif
-.size  OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
-
 .global        OPENSSL_instrument_bus
 .type  OPENSSL_instrument_bus,%function
 OPENSSL_instrument_bus:
index 20728c03bc690a241cebb372012e4d840c1e2029..7adce892a602f9ceea10b2e93bb8b5b1329a0995 100644 (file)
@@ -20,7 +20,6 @@ $code.=<<___;
        .asg    OPENSSL_cleanse,_OPENSSL_cleanse
        .asg    CRYPTO_memcmp,_CRYPTO_memcmp
        .asg    OPENSSL_atomic_add,_OPENSSL_atomic_add
-       .asg    OPENSSL_wipe_cpu,_OPENSSL_wipe_cpu
        .asg    OPENSSL_instrument_bus,_OPENSSL_instrument_bus
        .asg    OPENSSL_instrument_bus2,_OPENSSL_instrument_bus2
        .endif
index a09f8556372d58e40ee126ef2b3baac73e2f6e5a..047efce227eb6b000188809dd5eabf6d6d676605 100644 (file)
@@ -49,96 +49,6 @@ OPENSSL_atomic_add:
        br.ret.sptk.many        b0      };;
 .endp  OPENSSL_atomic_add#
 
-// Returns a structure comprising pointer to the top of stack of
-// the caller and pointer beyond backing storage for the current
-// register frame. The latter is required, because it might be
-// insufficient to wipe backing storage for the current frame
-// (as this procedure does), one might have to go further, toward
-// higher addresses to reach for whole "retroactively" saved
-// context...
-.global        OPENSSL_wipe_cpu#
-.proc  OPENSSL_wipe_cpu#
-.align 32
-OPENSSL_wipe_cpu:
-       .prologue
-       .fframe 0
-       .save   ar.pfs,r2
-       .save   ar.lc,r3
-{ .mib;        alloc           r2=ar.pfs,0,96,0,96
-       mov             r3=ar.lc
-       brp.loop.imp    .L_wipe_top,.L_wipe_end-16
-                                       };;
-{ .mii;        mov             r9=ar.bsp
-       mov             r8=pr
-       mov             ar.lc=96        };;
-       .body
-{ .mii;        add             r9=96*8-8,r9
-       mov             ar.ec=1         };;
-
-// One can sweep double as fast, but then we can't guarantee
-// that backing storage is wiped...
-.L_wipe_top:
-{ .mfi;        st8             [r9]=r0,-8
-       mov             f127=f0
-       mov             r127=r0         }
-{ .mfb;        nop.m           0
-       nop.f           0
-       br.ctop.sptk    .L_wipe_top     };;
-.L_wipe_end:
-
-{ .mfi;        mov             r11=r0
-       mov             f6=f0
-       mov             r14=r0          }
-{ .mfi;        mov             r15=r0
-       mov             f7=f0
-       mov             r16=r0          }
-{ .mfi;        mov             r17=r0
-       mov             f8=f0
-       mov             r18=r0          }
-{ .mfi;        mov             r19=r0
-       mov             f9=f0
-       mov             r20=r0          }
-{ .mfi;        mov             r21=r0
-       mov             f10=f0
-       mov             r22=r0          }
-{ .mfi;        mov             r23=r0
-       mov             f11=f0
-       mov             r24=r0          }
-{ .mfi;        mov             r25=r0
-       mov             f12=f0
-       mov             r26=r0          }
-{ .mfi;        mov             r27=r0
-       mov             f13=f0
-       mov             r28=r0          }
-{ .mfi;        mov             r29=r0
-       mov             f14=f0
-       mov             r30=r0          }
-{ .mfi;        mov             r31=r0
-       mov             f15=f0
-       nop.i           0               }
-{ .mfi;        mov             f16=f0          }
-{ .mfi;        mov             f17=f0          }
-{ .mfi;        mov             f18=f0          }
-{ .mfi;        mov             f19=f0          }
-{ .mfi;        mov             f20=f0          }
-{ .mfi;        mov             f21=f0          }
-{ .mfi;        mov             f22=f0          }
-{ .mfi;        mov             f23=f0          }
-{ .mfi;        mov             f24=f0          }
-{ .mfi;        mov             f25=f0          }
-{ .mfi;        mov             f26=f0          }
-{ .mfi;        mov             f27=f0          }
-{ .mfi;        mov             f28=f0          }
-{ .mfi;        mov             f29=f0          }
-{ .mfi;        mov             f30=f0          }
-{ .mfi;        add             r9=96*8+8,r9
-       mov             f31=f0
-       mov             pr=r8,0x1ffff   }
-{ .mib;        mov             r8=sp
-       mov             ar.lc=r3
-       br.ret.sptk     b0              };;
-.endp  OPENSSL_wipe_cpu#
-
 .global        OPENSSL_cleanse#
 .proc  OPENSSL_cleanse#
 OPENSSL_cleanse:
index bad337545740a4f0273149f4b5ebb85818401e0d..6e591a5a21f1b67485a57fff73c175adf6bf6bc5 100644 (file)
@@ -55,46 +55,6 @@ OPENSSL_rdtsc
        .EXIT
        nop
        .PROCEND
-
-       .EXPORT OPENSSL_wipe_cpu,ENTRY
-       .ALIGN  8
-OPENSSL_wipe_cpu
-       .PROC
-       .CALLINFO       NO_CALLS
-       .ENTRY
-       xor             %r0,%r0,%r1
-       fcpy,dbl        %fr0,%fr4
-       xor             %r0,%r0,%r19
-       fcpy,dbl        %fr0,%fr5
-       xor             %r0,%r0,%r20
-       fcpy,dbl        %fr0,%fr6
-       xor             %r0,%r0,%r21
-       fcpy,dbl        %fr0,%fr7
-       xor             %r0,%r0,%r22
-       fcpy,dbl        %fr0,%fr8
-       xor             %r0,%r0,%r23
-       fcpy,dbl        %fr0,%fr9
-       xor             %r0,%r0,%r24
-       fcpy,dbl        %fr0,%fr10
-       xor             %r0,%r0,%r25
-       fcpy,dbl        %fr0,%fr11
-       xor             %r0,%r0,%r26
-       fcpy,dbl        %fr0,%fr22
-       xor             %r0,%r0,%r29
-       fcpy,dbl        %fr0,%fr23
-       xor             %r0,%r0,%r31
-       fcpy,dbl        %fr0,%fr24
-       fcpy,dbl        %fr0,%fr25
-       fcpy,dbl        %fr0,%fr26
-       fcpy,dbl        %fr0,%fr27
-       fcpy,dbl        %fr0,%fr28
-       fcpy,dbl        %fr0,%fr29
-       fcpy,dbl        %fr0,%fr30
-       fcpy,dbl        %fr0,%fr31
-       bv              ($rp)
-       .EXIT
-       ldo             0($sp),$rv
-       .PROCEND
 ___
 {
 my $inp="%r26";
index 2814e72f509bebe3363e0e41de52f790d921fdcc..62ab48ed847478f0e0a0b3de0455a31f9f86c77a 100755 (executable)
@@ -91,40 +91,6 @@ $code=<<___;
        .byte   0,12,0x14,0,0,0,0,0
 .size  .OPENSSL_brd31_probe,.-.OPENSSL_brd31_probe
 
-
-.globl .OPENSSL_wipe_cpu
-.align 4
-.OPENSSL_wipe_cpu:
-       xor     r0,r0,r0
-       fmr     f0,f31
-       fmr     f1,f31
-       fmr     f2,f31
-       mr      r3,r1
-       fmr     f3,f31
-       xor     r4,r4,r4
-       fmr     f4,f31
-       xor     r5,r5,r5
-       fmr     f5,f31
-       xor     r6,r6,r6
-       fmr     f6,f31
-       xor     r7,r7,r7
-       fmr     f7,f31
-       xor     r8,r8,r8
-       fmr     f8,f31
-       xor     r9,r9,r9
-       fmr     f9,f31
-       xor     r10,r10,r10
-       fmr     f10,f31
-       xor     r11,r11,r11
-       fmr     f11,f31
-       xor     r12,r12,r12
-       fmr     f12,f31
-       fmr     f13,f31
-       blr
-       .long   0
-       .byte   0,12,0x14,0,0,0,0,0
-.size  .OPENSSL_wipe_cpu,.-.OPENSSL_wipe_cpu
-
 .globl .OPENSSL_atomic_add
 .align 4
 .OPENSSL_atomic_add:
index bb2f68810d52ecefa0619a7e8b8a06b2d3c4df11..23ac82a92268021cd2c13b117b1f32ad7cbbba6f 100755 (executable)
@@ -188,26 +188,6 @@ OPENSSL_atomic_add:
        br      $ra
 .size  OPENSSL_atomic_add,.-OPENSSL_atomic_add
 
-.globl OPENSSL_wipe_cpu
-.type  OPENSSL_wipe_cpu,\@function
-.align 16
-OPENSSL_wipe_cpu:
-       xgr     %r0,%r0
-       xgr     %r1,%r1
-       lgr     %r2,$sp
-       xgr     %r3,%r3
-       xgr     %r4,%r4
-       lzdr    %f0
-       lzdr    %f1
-       lzdr    %f2
-       lzdr    %f3
-       lzdr    %f4
-       lzdr    %f5
-       lzdr    %f6
-       lzdr    %f7
-       br      $ra
-.size  OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
-
 .globl OPENSSL_cleanse
 .type  OPENSSL_cleanse,\@function
 .align 16
index 4771dd5087939f0f97dd1ec32ac3ddacd6c659dd..0487ce57689b73adb0a324701a4583b09a9a70e3 100644 (file)
 #endif
 
 .text
-.align 32
-.global        OPENSSL_wipe_cpu
-.type  OPENSSL_wipe_cpu,#function
-! Keep in mind that this does not excuse us from wiping the stack!
-! This routine wipes registers, but not the backing store [which
-! resides on the stack, toward lower addresses]. To facilitate for
-! stack wiping I return pointer to the top of stack of the *caller*.
-OPENSSL_wipe_cpu:
-       save    %sp,FRAME,%sp
-       nop
-#ifdef __sun
-#include <sys/trap.h>
-       ta      ST_CLEAN_WINDOWS
-#else
-       call    .walk.reg.wins
-#endif
-       nop
-       call    .PIC.zero.up
-       mov     .zero-(.-4),%o0
-       ld      [%o0],%f0
-       ld      [%o0],%f1
-
-       subcc   %g0,1,%o0
-       ! Following is V9 "rd %ccr,%o0" instruction. However! V8
-       ! specification says that it ("rd %asr2,%o0" in V8 terms) does
-       ! not cause illegal_instruction trap. It therefore can be used
-       ! to determine if the CPU the code is executing on is V8- or
-       ! V9-compliant, as V9 returns a distinct value of 0x99,
-       ! "negative" and "borrow" bits set in both %icc and %xcc.
-       .word   0x91408000      !rd     %ccr,%o0
-       cmp     %o0,0x99
-       bne     .v8
-       nop
-                       ! Even though we do not use %fp register bank,
-                       ! we wipe it as memcpy might have used it...
-                       .word   0xbfa00040      !fmovd  %f0,%f62
-                       .word   0xbba00040      !...
-                       .word   0xb7a00040
-                       .word   0xb3a00040
-                       .word   0xafa00040
-                       .word   0xaba00040
-                       .word   0xa7a00040
-                       .word   0xa3a00040
-                       .word   0x9fa00040
-                       .word   0x9ba00040
-                       .word   0x97a00040
-                       .word   0x93a00040
-                       .word   0x8fa00040
-                       .word   0x8ba00040
-                       .word   0x87a00040
-                       .word   0x83a00040      !fmovd  %f0,%f32
-.v8:                   fmovs   %f1,%f31
-       clr     %o0
-                       fmovs   %f0,%f30
-       clr     %o1
-                       fmovs   %f1,%f29
-       clr     %o2
-                       fmovs   %f0,%f28
-       clr     %o3
-                       fmovs   %f1,%f27
-       clr     %o4
-                       fmovs   %f0,%f26
-       clr     %o5
-                       fmovs   %f1,%f25
-       clr     %o7
-                       fmovs   %f0,%f24
-       clr     %l0
-                       fmovs   %f1,%f23
-       clr     %l1
-                       fmovs   %f0,%f22
-       clr     %l2
-                       fmovs   %f1,%f21
-       clr     %l3
-                       fmovs   %f0,%f20
-       clr     %l4
-                       fmovs   %f1,%f19
-       clr     %l5
-                       fmovs   %f0,%f18
-       clr     %l6
-                       fmovs   %f1,%f17
-       clr     %l7
-                       fmovs   %f0,%f16
-       clr     %i0
-                       fmovs   %f1,%f15
-       clr     %i1
-                       fmovs   %f0,%f14
-       clr     %i2
-                       fmovs   %f1,%f13
-       clr     %i3
-                       fmovs   %f0,%f12
-       clr     %i4
-                       fmovs   %f1,%f11
-       clr     %i5
-                       fmovs   %f0,%f10
-       clr     %g1
-                       fmovs   %f1,%f9
-       clr     %g2
-                       fmovs   %f0,%f8
-       clr     %g3
-                       fmovs   %f1,%f7
-       clr     %g4
-                       fmovs   %f0,%f6
-       clr     %g5
-                       fmovs   %f1,%f5
-                       fmovs   %f0,%f4
-                       fmovs   %f1,%f3
-                       fmovs   %f0,%f2
-
-       add     %fp,BIAS,%i0    ! return pointer to caller´s top of stack
-
-       ret
-       restore
-
-.zero: .long   0x0,0x0
-.PIC.zero.up:
-       retl
-       add     %o0,%o7,%o0
-#ifdef DEBUG
-.global        walk_reg_wins
-.type  walk_reg_wins,#function
-walk_reg_wins:
-#endif
-.walk.reg.wins:
-       save    %sp,FRAME,%sp
-       cmp     %i7,%o7
-       be      2f
-       clr     %o0
-       cmp     %o7,0   ! compiler never cleans %o7...
-       be      1f      ! could have been a leaf function...
-       clr     %o1
-       call    .walk.reg.wins
-       nop
-1:     clr     %o2
-       clr     %o3
-       clr     %o4
-       clr     %o5
-       clr     %o7
-       clr     %l0
-       clr     %l1
-       clr     %l2
-       clr     %l3
-       clr     %l4
-       clr     %l5
-       clr     %l6
-       clr     %l7
-       add     %o0,1,%i0       ! used for debugging
-2:     ret
-       restore
-.size  OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
-
 .global        OPENSSL_atomic_add
 .type  OPENSSL_atomic_add,#function
 .align 32
index f0eb8510ed2e916b1190b08dbb8afdcb9cc3cfe1..3229d7d8fa688d6468b81ad1d463dc676d6f0fac 100644 (file)
@@ -339,63 +339,6 @@ CRYPTO_memcmp:
 .size  CRYPTO_memcmp,.-CRYPTO_memcmp
 ___
 
-print<<___ if (!$win64);
-.globl OPENSSL_wipe_cpu
-.type  OPENSSL_wipe_cpu,\@abi-omnipotent
-.align 16
-OPENSSL_wipe_cpu:
-.cfi_startproc
-       endbranch
-       pxor    %xmm0,%xmm0
-       pxor    %xmm1,%xmm1
-       pxor    %xmm2,%xmm2
-       pxor    %xmm3,%xmm3
-       pxor    %xmm4,%xmm4
-       pxor    %xmm5,%xmm5
-       pxor    %xmm6,%xmm6
-       pxor    %xmm7,%xmm7
-       pxor    %xmm8,%xmm8
-       pxor    %xmm9,%xmm9
-       pxor    %xmm10,%xmm10
-       pxor    %xmm11,%xmm11
-       pxor    %xmm12,%xmm12
-       pxor    %xmm13,%xmm13
-       pxor    %xmm14,%xmm14
-       pxor    %xmm15,%xmm15
-       xorq    %rcx,%rcx
-       xorq    %rdx,%rdx
-       xorq    %rsi,%rsi
-       xorq    %rdi,%rdi
-       xorq    %r8,%r8
-       xorq    %r9,%r9
-       xorq    %r10,%r10
-       xorq    %r11,%r11
-       leaq    8(%rsp),%rax
-       ret
-.cfi_endproc
-.size  OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
-___
-print<<___ if ($win64);
-.globl OPENSSL_wipe_cpu
-.type  OPENSSL_wipe_cpu,\@abi-omnipotent
-.align 16
-OPENSSL_wipe_cpu:
-       pxor    %xmm0,%xmm0
-       pxor    %xmm1,%xmm1
-       pxor    %xmm2,%xmm2
-       pxor    %xmm3,%xmm3
-       pxor    %xmm4,%xmm4
-       pxor    %xmm5,%xmm5
-       xorq    %rcx,%rcx
-       xorq    %rdx,%rdx
-       xorq    %r8,%r8
-       xorq    %r9,%r9
-       xorq    %r10,%r10
-       xorq    %r11,%r11
-       leaq    8(%rsp),%rax
-       ret
-.size  OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
-___
 {
 my $out="%r10";
 my $cnt="%rcx";
index 35e2c5b0a5404b76123e8b1349ed27f9ef51d432..2b05bc53dfe9f0bf2af59dadbedcabde06e193dd 100644 (file)
@@ -268,34 +268,6 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
        &ret    ();
 &function_end_B("OPENSSL_far_spin");
 
-&function_begin_B("OPENSSL_wipe_cpu","EXTRN\t_OPENSSL_ia32cap_P:DWORD");
-       &xor    ("eax","eax");
-       &xor    ("edx","edx");
-       &picmeup("ecx","OPENSSL_ia32cap_P");
-       &mov    ("ecx",&DWP(0,"ecx"));
-       &bt     (&DWP(0,"ecx"),1);
-       &jnc    (&label("no_x87"));
-       if ($sse2) {
-               &and    ("ecx",1<<26|1<<24);    # check SSE2 and FXSR bits
-               &cmp    ("ecx",1<<26|1<<24);
-               &jne    (&label("no_sse2"));
-               &pxor   ("xmm0","xmm0");
-               &pxor   ("xmm1","xmm1");
-               &pxor   ("xmm2","xmm2");
-               &pxor   ("xmm3","xmm3");
-               &pxor   ("xmm4","xmm4");
-               &pxor   ("xmm5","xmm5");
-               &pxor   ("xmm6","xmm6");
-               &pxor   ("xmm7","xmm7");
-       &set_label("no_sse2");
-       }
-       # just a bunch of fldz to zap the fp/mm bank followed by finit...
-       &data_word(0xeed9eed9,0xeed9eed9,0xeed9eed9,0xeed9eed9,0x90e3db9b);
-&set_label("no_x87");
-       &lea    ("eax",&DWP(4,"esp"));
-       &ret    ();
-&function_end_B("OPENSSL_wipe_cpu");
-
 &function_begin_B("OPENSSL_atomic_add");
        &mov    ("edx",&DWP(4,"esp"));  # fetch the pointer, 1st arg
        &mov    ("ecx",&DWP(8,"esp"));  # fetch the increment, 2nd arg