Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/powerpc/platforms/ps3/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 16 kB image not shown  

Quelle  hvcall.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *  PS3 hvcall interface.
 *
 *  Copyright (C) 2006 Sony Computer Entertainment Inc.
 *  Copyright 2006 Sony Corp.
 *  Copyright 2003, 2004 (c) MontaVista Software, Inc.
 */


#include <asm/processor.h>
#include <asm/ppc_asm.h>
#include <asm/ptrace.h>

#define lv1call .long 0x44000022; extsw r3, r3

#define LV1_N_IN_0_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 stdu    r1, -STACK_FRAME_MIN_SIZE(r1); \
 li      r11, API_NUMBER;  \
 lv1call;    \
 addi r1, r1, STACK_FRAME_MIN_SIZE; \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_0_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_1_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_2_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_3_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_4_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_5_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_6_IN_0_OUT LV1_N_IN_0_OUT
#define LV1_7_IN_0_OUT LV1_N_IN_0_OUT

#define LV1_0_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r3, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_0_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r3, -8(r1);   \
 std r4, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_0_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r3, -8(r1);   \
 std r4, -16(r1);   \
 std r5, -24(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-24(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_0_IN_7_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r3, -8(r1);   \
 std r4, -16(r1);   \
 std r5, -24(r1);   \
 std r6, -32(r1);   \
 std r7, -40(r1);   \
 std r8, -48(r1);   \
 std r9, -56(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-56(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+56; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
 ld r11, -40(r1);   \
 std r8, 0(r11);   \
 ld r11, -48(r1);   \
 std r9, 0(r11);   \
 ld r11, -56(r1);   \
 std r10, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r4, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r4, -8(r1);   \
 std r5, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r4, -8(r1);   \
 std r5, -16(r1);   \
 std r6, -24(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-24(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_4_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r4, -8(r1);   \
 std r5, -16(r1);   \
 std r6, -24(r1);   \
 std r7, -32(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-32(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+32; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_5_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r4, -8(r1);   \
 std r5, -16(r1);   \
 std r6, -24(r1);   \
 std r7, -32(r1);   \
 std r8, -40(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-40(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+40; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
 ld r11, -40(r1);   \
 std r8, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_6_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r4, -8(r1);   \
 std r5, -16(r1);   \
 std r6, -24(r1);   \
 std r7, -32(r1);   \
 std r8, -40(r1);   \
 std r9, -48(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-48(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+48; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
 ld r11, -40(r1);   \
 std r8, 0(r11);   \
 ld r11, -48(r1);   \
 std r9, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_1_IN_7_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r4, -8(r1);   \
 std r5, -16(r1);   \
 std r6, -24(r1);   \
 std r7, -32(r1);   \
 std r8, -40(r1);   \
 std r9, -48(r1);   \
 std r10, -56(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-56(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+56; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
 ld r11, -40(r1);   \
 std r8, 0(r11);   \
 ld r11, -48(r1);   \
 std r9, 0(r11);   \
 ld r11, -56(r1);   \
 std r10, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_2_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r5, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_2_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r5, -8(r1);   \
 std r6, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_2_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r5, -8(r1);   \
 std r6, -16(r1);   \
 std r7, -24(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-24(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_2_IN_4_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r5, -8(r1);   \
 std r6, -16(r1);   \
 std r7, -24(r1);   \
 std r8, -32(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-32(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+32;\
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_2_IN_5_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r5, -8(r1);   \
 std r6, -16(r1);   \
 std r7, -24(r1);   \
 std r8, -32(r1);   \
 std r9, -40(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-40(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+40; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
 ld r11, -32(r1);   \
 std r7, 0(r11);   \
 ld r11, -40(r1);   \
 std r8, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_3_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r6, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_3_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r6, -8(r1);   \
 std r7, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_3_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r6, -8(r1);   \
 std r7, -16(r1);   \
 std r8, -24(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-24(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_4_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r7, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_4_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r7, -8(r1);   \
 std r8, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_4_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r7, -8(r1);   \
 std r8, -16(r1);   \
 std r9, -24(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-24(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_5_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r8, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_5_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r8, -8(r1);   \
 std r9, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_5_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r8, -8(r1);   \
 std r9, -16(r1);   \
 std r10, -24(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-24(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+24; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, -24(r1);   \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_6_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r9, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_6_IN_2_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r9, -8(r1);   \
 std r10, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_6_IN_3_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std     r9, -8(r1);   \
 std r10, -16(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-16(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+16; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
 ld r11, -16(r1);   \
 std r5, 0(r11);   \
 ld r11, STK_PARAM_AREA+8*8(r1); \
 std r6, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_7_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r10, -8(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE-8(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE+8; \
 ld r11, -8(r1);   \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_7_IN_6_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
      \
 std r10, STK_PARAM_AREA+8*7(r1); \
 stdu    r1, -STACK_FRAME_MIN_SIZE(r1); \
      \
 li r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE; \
 ld r11, STK_PARAM_AREA+8*7(r1); \
 std r4, 0(r11);   \
 ld r11, STK_PARAM_AREA+8*8(r1); \
 std r5, 0(r11);   \
 ld r11, STK_PARAM_AREA+8*9(r1); \
 std r6, 0(r11);   \
 ld r11, STK_PARAM_AREA+8*10(r1); \
 std r7, 0(r11);   \
 ld r11, STK_PARAM_AREA+8*11(r1); \
 std r8, 0(r11);   \
 ld r11, STK_PARAM_AREA+8*12(r1); \
 std r9, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

#define LV1_8_IN_1_OUT(API_NAME, API_NUMBER) \
_GLOBAL(_##API_NAME)    \
      \
 mflr r0;    \
 std r0, LRSAVE(r1);   \
 stdu    r1, -STACK_FRAME_MIN_SIZE(r1); \
      \
 li      r11, API_NUMBER;  \
 lv1call;    \
      \
 addi r1, r1, STACK_FRAME_MIN_SIZE; \
 ld r11, STK_PARAM_AREA+8*8(r1); \
 std r4, 0(r11);   \
      \
 ld r0, LRSAVE(r1);   \
 mtlr r0;    \
 blr

 .text

/* the lv1 underscored call definitions expand here */

#define LV1_CALL(name, in, out, num) LV1_##in##_IN_##out##_OUT(lv1_##name, num)
#include <asm/lv1call.h>

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ¤

*© 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.