Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- s32 sceGe_lazy_31129B95(s32 arg0, s32 arg1)
- {
- s32 tmp0;
- s32 tmp1;
- if (arg0 == g_b80) {
- g_b84 = arg1;
- if (arg1 != 0) {
- g_b88++;
- if (g_b88 < g_b8c) {
- return 0;
- }
- }
- }
- // loc_0000017C
- if (g_b80 < 0) {
- goto loc_000001C0;
- }
- do {
- /* begin atomic RMW */
- asm __volatile__(
- "ll %0, (%1)"
- : "=r" (tmp0)
- : "r" (&g_b80)
- );
- tmp1 = -1;
- if (tmp0 != g_b80) {
- goto loc_000001C0;
- }
- /* end atomic RMW */
- /* if an atomic update as occured, %0 will be set to 1 */
- asm __volatile__(
- "sc %0, (%1)"
- : "=r" (tmp1)
- : "r" (&g_b80)
- );
- } while (!tmp1);
- $at = 0
- $a0 = tmp0
- $a1 = g_b84
- $a2 = g_b8c
- $a3 = g_b84
- $v0 = g_b80
- $v1 = -1
- loc_000001C0:
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement