PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
s_svsr.c
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
11#include "libspu2_internal.h"
12
13static void __attribute__((optimize("no-unroll-loops"))) _spu_wait_SpuSetVoiceSR(void)
14{
15 int i;
16 int v1;
17
18 v1 = 1;
19 for ( i = 0; i < 2; i += 1 )
20 {
21 v1 *= 13;
22 __asm__ __volatile__("" : "+g"(v1) : :);
23 }
24}
25
26void SpuSetVoiceSR(int v_num, u16 sr)
27{
28 vu16 *v2;
29
30 v2 = &_spu_RXX[512 * _spu_core + 8 * v_num];
31 v2[4] = (v2[4] & 0x3F) | ((sr | 0x100) << 6);
32 _spu_wait_SpuSetVoiceSR();
33}
34
35// libspu2/s_svrro
36
37static void __attribute__((optimize("no-unroll-loops"))) _spu_wait_SpuSetVoiceRR(void)
38{
39 int i;
40 int v1;
41
42 v1 = 1;
43 for ( i = 0; i < 2; i += 1 )
44 {
45 v1 *= 13;
46 __asm__ __volatile__("" : "+g"(v1) : :);
47 }
48}
49
50void SpuSetVoiceRR(int v_num, u16 rr)
51{
52 vu16 *v2;
53
54 v2 = &_spu_RXX[512 * _spu_core + 8 * v_num];
55 v2[4] = (v2[4] & ~0x3f) | rr;
56 _spu_wait_SpuSetVoiceRR();
57}
typedef __attribute__
Definition tlbfunc.c:60