notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cdriso: handle chd subchannels, when available
[pcsx_rearmed.git]
/
libpcsxcore
/
gte_neon.S
diff --git
a/libpcsxcore/gte_neon.S
b/libpcsxcore/gte_neon.S
index
d83cf23
..
7d97ff3
100644
(file)
--- a/
libpcsxcore/gte_neon.S
+++ b/
libpcsxcore/gte_neon.S
@@
-5,29
+5,13
@@
* See the COPYING file in the top-level directory.
*/
* See the COPYING file in the top-level directory.
*/
+#include "arm_features.h"
+#include "new_dynarec/linkage_offsets.h"
.syntax unified
.syntax unified
-
-.bss
-.align 6 @ cacheline
-
-scratch:
-.rept 8*8*2/4
- .word 0
-.endr
-
.text
.align 2
.text
.align 2
-.macro ldr_scratch rd
-#ifndef __PIC__
- movw \rd, #:lower16:scratch
- movt \rd, #:upper16:scratch
-#else
- ldr \rd, =scratch
-#endif
-.endm
-
@ XXX: gteMAC calc shouldn't be saturating, but it is here
@ approximate gteMAC|123 flags
@ XXX: gteMAC calc shouldn't be saturating, but it is here
@ approximate gteMAC|123 flags
@@
-145,12
+129,11
@@
scratch:
vqmovn.s32 d10, q4 @ gteIR|123; losing 2 cycles?
.endm
vqmovn.s32 d10, q4 @ gteIR|123; losing 2 cycles?
.endm
-.global gteRTPS_neon @ r0=CP2 (d,c),
-gteRTPS_neon:
+FUNCTION(gteRTPS_neon): @ r0=CP2 (d,c),
push {r4-r6,lr}
@ fmrx r4, fpscr @ vmrs? at least 40 cycle hit
push {r4-r6,lr}
@ fmrx r4, fpscr @ vmrs? at least 40 cycle hit
- ldr
_scratch r1
+ ldr
r1, [r0, #LO_cop2_to_scratch_buf]
mov r12, #0
vldmia r0, {d8} @ VXYZ(0)
mov r12, #0
vldmia r0, {d8} @ VXYZ(0)
@@
-299,16
+282,15
@@
gteRTPS_neon:
-.global gteRTPT_neon @ r0=CP2 (d,c),
-gteRTPT_neon:
+FUNCTION(gteRTPT_neon): @ r0=CP2 (d,c),
push {r4-r11,lr}
push {r4-r11,lr}
- ldr
_scratch r1
+ ldr
r1, [r0, #LO_cop2_to_scratch_buf]
mov r12, #0
rtpx_preload
mov r12, #0
rtpx_preload
- vm
ov.i32 d22,
#0x7fffffff
+ vm
vn.i32 d22, #0x80000000 @
#0x7fffffff
vmov.i32 d23, #0x80000000
mov r3, #3 @ counter
mov r2, r0 @ VXYZ(0)
vmov.i32 d23, #0x80000000
mov r3, #3 @ counter
mov r2, r0 @ VXYZ(0)
@@
-546,8
+528,7
@@
gteRTPT_neon:
@ r4,r5 = VXYZ(v) packed
@ r6 = &MX11(mx)
@ r7 = &CV1(cv)
@ r4,r5 = VXYZ(v) packed
@ r6 = &MX11(mx)
@ r7 = &CV1(cv)
-.global gteMVMVA_part_neon
-gteMVMVA_part_neon:
+FUNCTION(gteMVMVA_part_neon):
uxth r5, r5
vmov.32 d8[0], r4
vmov.32 d8[1], r5 @ VXYZ(v)
uxth r5, r5
vmov.32 d8[0], r4
vmov.32 d8[1], r5 @ VXYZ(v)
@@
-594,8
+575,7
@@
gteMVMVA_part_neon:
@ get flags after gteMVMVA_part_neon operation
@ get flags after gteMVMVA_part_neon operation
-.global gteMACtoIR_flags_neon @ r0=CP2 (d,c), r1=lm
-gteMACtoIR_flags_neon:
+FUNCTION(gteMACtoIR_flags_neon): @ r0=CP2 (d,c), r1=lm
push {r4,r5,lr}
tst r1, r1 @ lm
mov lr, #0 @ gteFLAG
push {r4,r5,lr}
tst r1, r1 @ lm
mov lr, #0 @ gteFLAG