Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- from sdk docs
- search this: "Low Level System Information"
- or go to this directory:
- PlayStation®3 Programmer Tool Runtime Library Release 4.7.0
- -OS Low-level Specifications
- -PPU ABI Specifications for Cell OS Lv-2
- -2 PPU ABI Specifications
- -2. 2 Low Level System Information
- */
- __attribute__((naked)) void _savegpr0_N()
- {
- __asm__
- (
- "std %r14, -144(%r1);" // _savegpr0_14
- "std %r15, -136(%r1);" // _savegpr0_15
- "std %r16, -128(%r1);" // _savegpr0_16
- "std %r17, -120(%r1);" // _savegpr0_17
- "std %r18, -112(%r1);" // _savegpr0_18
- "std %r19, -104(%r1);" // _savegpr0_19
- "std %r20, -96(%r1);" // _savegpr0_20
- "std %r21, -88(%r1);" // _savegpr0_21
- "std %r22, -80(%r1);" // _savegpr0_22
- "std %r23, -72(%r1);" // _savegpr0_23
- "std %r24, -64(%r1);" // _savegpr0_24
- "std %r25, -56(%r1);" // _savegpr0_25
- "std %r26, -48(%r1);" // _savegpr0_26
- "std %r27, -40(%r1);" // _savegpr0_27
- "std %r28, -32(%r1);" // _savegpr0_28
- "std %r29, -24(%r1);" // _savegpr0_29
- "std %r30, -16(%r1);" // _savegpr0_30
- "std %r31, -8(%r1);" // _savegpr0_31
- "std %r0, 16(%r1);"
- "blr;"
- );
- }
- __attribute__((naked)) void restgpr0_N()
- {
- __asm__
- (
- "ld %r14, -144(%r1);" // _restgpr0_14
- "ld %r15, -136(%r1);" // _restgpr0_15
- "ld %r16, -128(%r1);" // _restgpr0_16
- "ld %r17, -120(%r1);" // _restgpr0_17
- "ld %r18, -112(%r1);" // _restgpr0_18
- "ld %r19, -104(%r1);" // _restgpr0_19
- "ld %r20, -96(%r1);" // _restgpr0_20
- "ld %r21, -88(%r1);" // _restgpr0_21
- "ld %r22, -80(%r1);" // _restgpr0_22
- "ld %r23, -72(%r1);" // _restgpr0_23
- "ld %r24, -64(%r1);" // _restgpr0_24
- "ld %r25, -56(%r1);" // _restgpr0_25
- "ld %r26, -48(%r1);" // _restgpr0_26
- "ld %r27, -40(%r1);" // _restgpr0_27
- "ld %r28, -32(%r1);" // _restgpr0_28
- "ld %r0, 16(%r1);" // _restgpr0_29
- "ld %r29, -24(%r1);"
- "mtlr %r0;"
- "ld %r30, -16(%r1);"
- "ld %r31, -8(%r1);"
- "blr;"
- "ld %r30, -16(%r1);" // _restgpr0_30
- "ld %r0, 16(%r1);" // _restgpr0_31
- "ld %r31, -8(%r1);"
- "mtlr %r0;"
- "blr;"
- );
- }
- __attribute__((naked)) void _savegpr1_N()
- {
- __asm__
- (
- "std %r14, -144(%r12);" // _savegpr1_14
- "std %r15, -136(%r12);" // _savegpr1_15
- "std %r16, -128(%r12);" // _savegpr1_16
- "std %r17, -120(%r12);" // _savegpr1_17
- "std %r18, -112(%r12);" // _savegpr1_18
- "std %r19, -104(%r12);" // _savegpr1_19
- "std %r20, -96(%r12);" // _savegpr1_20
- "std %r21, -88(%r12);" // _savegpr1_21
- "std %r22, -80(%r12);" // _savegpr1_22
- "std %r23, -72(%r12);" // _savegpr1_23
- "std %r24, -64(%r12);" // _savegpr1_24
- "std %r25, -56(%r12);" // _savegpr1_25
- "std %r26, -48(%r12);" // _savegpr1_26
- "std %r27, -40(%r12);" // _savegpr1_27
- "std %r28, -32(%r12);" // _savegpr1_28
- "std %r29, -24(%r12);" // _savegpr1_29
- "std %r30, -16(%r12);" // _savegpr1_30
- "std %r31, -8(%r12);" // _savegpr1_31
- "blr;"
- );
- }
- __attribute__((naked)) void _restgpr1_N()
- {
- __asm__
- (
- "ld %r14, -144(%r12);" // _restgpr1_14
- "ld %r15, -136(%r12);" // _restgpr1_15
- "ld %r16, -128(%r12);" // _restgpr1_16
- "ld %r17, -120(%r12);" // _restgpr1_17
- "ld %r18, -112(%r12);" // _restgpr1_18
- "ld %r19, -104(%r12);" // _restgpr1_19
- "ld %r20, -96(%r12);" // _restgpr1_20
- "ld %r21, -88(%r12);" // _restgpr1_21
- "ld %r22, -80(%r12);" // _restgpr1_22
- "ld %r23, -72(%r12);" // _restgpr1_23
- "ld %r24, -64(%r12);" // _restgpr1_24
- "ld %r25, -56(%r12);" // _restgpr1_25
- "ld %r26, -48(%r12);" // _restgpr1_26
- "ld %r27, -40(%r12);" // _restgpr1_27
- "ld %r28, -32(%r12);" // _restgpr1_28
- "ld %r29, -24(%r12);" // _restgpr1_29
- "ld %r30, -16(%r12);" // _restgpr1_30
- "ld %r31, -8(%r12);" // _restgpr1_31
- "blr;"
- );
- }
- __attribute__((naked)) void _savefpr_N()
- {
- __asm__
- (
- "stfd %f14, -144(%r1);" // _savefpr_14
- "stfd %f15, -136(%r1);" // _savefpr_15
- "stfd %f16, -128(%r1);" // _savefpr_16
- "stfd %f17, -120(%r1);" // _savefpr_17
- "stfd %f18, -112(%r1);" // _savefpr_18
- "stfd %f19, -104(%r1);" // _savefpr_19
- "stfd %f20, -96(%r1);" // _savefpr_20
- "stfd %f21, -88(%r1);" // _savefpr_21
- "stfd %f22, -80(%r1);" // _savefpr_22
- "stfd %f23, -72(%r1);" // _savefpr_23
- "stfd %f24, -64(%r1);" // _savefpr_24
- "stfd %f25, -56(%r1);" // _savefpr_25
- "stfd %f26, -48(%r1);" // _savefpr_26
- "stfd %f27, -40(%r1);" // _savefpr_27
- "stfd %f28, -32(%r1);" // _savefpr_28
- "stfd %f29, -24(%r1);" // _savefpr_29
- "stfd %f30, -16(%r1);" // _savefpr_30
- "stfd %f31, -8(%r1);" // _savefpr_31
- "std %r0, 16(%r1);"
- "blr;"
- );
- }
- __attribute__((naked)) void _restfpr_N()
- {
- __asm__
- (
- "lfd %f14, -144(%r1);" // _restfpr_14
- "lfd %f15, -136(%r1);" // _restfpr_15
- "lfd %f16, -128(%r1);" // _restfpr_16
- "lfd %f17, -120(%r1);" // _restfpr_17
- "lfd %f18, -112(%r1);" // _restfpr_18
- "lfd %f19, -104(%r1);" // _restfpr_19
- "lfd %f20, -96(%r1);" // _restfpr_20
- "lfd %f21, -88(%r1);" // _restfpr_21
- "lfd %f22, -80(%r1);" // _restfpr_22
- "lfd %f23, -72(%r1);" // _restfpr_23
- "lfd %f24, -64(%r1);" // _restfpr_24
- "lfd %f25, -56(%r1);" // _restfpr_25
- "lfd %f26, -48(%r1);" // _restfpr_26
- "lfd %f27, -40(%r1);" // _restfpr_27
- "lfd %f28, -32(%r1);" // _restfpr_28
- "ld %r0, 16(%r1);" // _restfpr_29
- "lfd %f29, -24(%r1);"
- "mtlr %r0;"
- "lfd %f30, -16(%r1);"
- "lfd %f31, -8(%r1);"
- "blr;"
- "lfd %f30, -16(%r1);" // _restfpr_30
- "ld %r0, 16(%r1);" // _restfpr_31
- "lfd %f31, -8(%r1);"
- "mtlr %r0;"
- "blr;"
- );
- }
- __attribute__((naked)) void _savevr_N()
- {
- __asm__
- (
- "addi %r12, %r0, -192;" // _savevr_20
- "stvx %v20, %r12, %r0;"
- "addi %r12, %r0, -176;" // _savevr_21
- "stvx %v21, %r12, %r0;"
- "addi %r12, %r0, -160;" // _savevr_22
- "stvx %v22, %r12, %r0;"
- "addi %r12, %r0, -144;" // _savevr_23
- "stvx %v23, %r12, %r0;"
- "addi %r12, %r0, -128;" // _savevr_24
- "stvx %v24, %r12, %r0;"
- "addi %r12, %r0, -112;" // _savevr_25
- "stvx %v25, %r12, %r0;"
- "addi %r12, %r0, -96;" // _savevr_26
- "stvx %v26, %r12, %r0;"
- "addi %r12, %r0, -80;" // _savevr_27
- "stvx %v27, %r12, %r0;"
- "addi %r12, %r0, -64;" // _savevr_28
- "stvx %v28, %r12, %r0;"
- "addi %r12, %r0, -48;" // _savevr_29
- "stvx %v29, %r12, %r0;"
- "addi %r12, %r0, -32;" // _savevr_30
- "stvx %v30, %r12, %r0;"
- "addi %r12, %r0, -16;" // _savevr_31
- "stvx %v31, %r12, %r0;"
- "blr;"
- );
- }
- __attribute__((naked)) void _restvr_M()
- {
- __asm__
- (
- "addi %r12, %r0, -192;" // _restvr_20
- "lvx %v20, %r12, %r0;"
- "addi %r12, %r0, -176;" // _restvr_21
- "lvx %v21, %r12, %r0;"
- "addi %r12, %r0, -160;" // _restvr_22
- "lvx %v22, %r12, %r0;"
- "addi %r12, %r0, -144;" // _restvr_23
- "lvx %v23, %r12, %r0;"
- "addi %r12, %r0, -128;" // _restvr_24
- "lvx %v24, %r12, %r0;"
- "addi %r12, %r0, -112;" // _restvr_25
- "lvx %v25, %r12, %r0;"
- "addi %r12, %r0, -96;" // _restvr_26
- "lvx %v26, %r12, %r0;"
- "addi %r12, %r0, -80;" // _restvr_27
- "lvx %v27, %r12, %r0;"
- "addi %r12, %r0, -64;" // _restvr_28
- "lvx %v28, %r12, %r0;"
- "addi %r12, %r0, -48;" // _restvr_29
- "lvx %v29, %r12, %r0;"
- "addi %r12, %r0, -32;" // _restvr_30
- "lvx %v30, %r12, %r0;"
- "addi %r12, %r0, -16;" // _restvr_31
- "lvx %v31, %r12, %r0;"
- "blr;"
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement