Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/parisc/kernel/vdso32/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 4 kB image not shown  

Quelle  sigtramp.S

  Sprache: Sparc
 

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Signal trampolines for 32 bit processes.
 *
 * Copyright (C) 2006 Randolph Chung <tausq@debian.org>
 * Copyright (C) 2018-2022 Helge Deller <deller@gmx.de>
 * Copyright (C) 2022 John David Anglin <dave.anglin@bell.net>
 */

#include <asm/unistd.h>
#include <linux/linkage.h>
#include <generated/asm-offsets.h>

 .text

/* Gdb expects the trampoline is on the stack and the pc is offset from
   a 64-byte boundary by 0, 4 or 5 instructions. Since the vdso trampoline
   is not on the stack, we need a new variant with different offsets and
   data to tell gdb where to find the signal context on the stack.

   Here we put the offset to the context data at the start of the trampoline
   region and offset the first trampoline by 2 instructions. Please do
   not change the trampoline as the code in gdb depends on the following
   instruction sequence exactly.
 */

 .align 64
 .word SIGFRAME_CONTEXT_REGS32

/* The nop here is a hack. The dwarf2 unwind routines subtract 1 from
   the return address to get an address in the middle of the presumed
   call instruction. Since we don't have a call here, we artifically
   extend the range covered by the unwind info by adding a nop before
   the real start.
 */

 nop

 .globl __kernel_sigtramp_rt
 .type __kernel_sigtramp_rt, @function
__kernel_sigtramp_rt:
 .proc
 .callinfo FRAME=ASM_SIGFRAME_SIZE32,CALLS,SAVE_RP
 .entry

.Lsigrt_start = . - 4
0: ldi 0, %r25   /* (in_syscall=0) */
 ldi  __NR_rt_sigreturn, %r20
 ble  0x100(%sr2, %r0)
 nop

1: ldi 1, %r25   /* (in_syscall=1) */
 ldi  __NR_rt_sigreturn, %r20
 ble  0x100(%sr2, %r0)
 nop
.Lsigrt_end:
 .exit
 .procend
 .size __kernel_sigtramp_rt,.-__kernel_sigtramp_rt


 .section .eh_frame,"a",@progbits

/* This is where the mcontext_t struct can be found on the stack.  */
#define PTREGS SIGFRAME_CONTEXT_REGS32 /* 32-bit process offset is -672 */

/* Register REGNO can be found at offset OFS of the mcontext_t structure. */
 .macro rsave regno,ofs
 .byte 0x05  /* DW_CFA_offset_extended */
 .uleb128 \regno; /*   regno */
 .uleb128 \ofs  /*   factored offset */
 .endm

.Lcie:
 .long .Lcie_end - .Lcie_start
.Lcie_start:
 .long 0   /* CIE ID */
 .byte 1   /* Version number */
 .stringz "zRS"  /* NUL-terminated augmentation string */
 .uleb128 4  /* Code alignment factor */
 .sleb128 4  /* Data alignment factor */
 .byte 89  /* Return address register column, iaoq[0] */
 .uleb128 1  /* Augmentation value length */
 .byte 0x1b  /* DW_EH_PE_pcrel | DW_EH_PE_sdata4. */
 .byte 0x0f  /* DW_CFA_def_cfa_expresion */
 .uleb128 9f - 1/*   length */
1:
 .byte 0x8e  /*   DW_OP_breg30 */
 .sleb128 PTREGS
9:
 .balign 4
.Lcie_end:

 .long .Lfde0_end - .Lfde0_start
.Lfde0_start:
 .long .Lfde0_start - .Lcie /* CIE pointer. */
 .long .Lsigrt_start - .  /* PC start, length */
 .long .Lsigrt_end - .Lsigrt_start
 .uleb128 0   /* Augmentation */

 /* General registers */
 rsave  1,  2
 rsave  2,  3
 rsave  3,  4
 rsave  4,  5
 rsave  5,  6
 rsave  6,  7
 rsave  7,  8
 rsave  8,  9
 rsave  910
 rsave 1011
 rsave 1112
 rsave 1213
 rsave 1314
 rsave 1415
 rsave 1516
 rsave 1617
 rsave 1718
 rsave 1819
 rsave 1920
 rsave 2021
 rsave 2122
 rsave 2223
 rsave 2324
 rsave 2425
 rsave 2526
 rsave 2627
 rsave 2728
 rsave 2829
 rsave 2930
 rsave 3031
 rsave 3132

 /* Floating-point registers */
 rsave 3242
 rsave 3343
 rsave 3444
 rsave 3545
 rsave 3646
 rsave 3747
 rsave 3848
 rsave 3949
 rsave 4050
 rsave 4151
 rsave 4252
 rsave 4353
 rsave 4454
 rsave 4555
 rsave 4656
 rsave 4757
 rsave 4858
 rsave 4959
 rsave 5060
 rsave 5161
 rsave 5262
 rsave 5363
 rsave 5464
 rsave 5565
 rsave 5666
 rsave 5767
 rsave 5868
 rsave 5969
 rsave 6070
 rsave 6171
 rsave 6272
 rsave 6373
 rsave 6474
 rsave 6575
 rsave 6676
 rsave 6777
 rsave 6878
 rsave 6979
 rsave 7080
 rsave 7181
 rsave 7282
 rsave 7383
 rsave 7484
 rsave 7585
 rsave 7686
 rsave 7787
 rsave 7888
 rsave 7989
 rsave 8090
 rsave 8191
 rsave 8292
 rsave 8393
 rsave 8494
 rsave 8595
 rsave 8696
 rsave 8797

 /* SAR register */
 rsave 88102

 /* iaoq[0] return address register */
 rsave 89100
 .balign 4
.Lfde0_end:

Messung V0.5 in Prozent
C=92 H=86 G=88

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-06-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.