Commit graph

12 commits

Author SHA1 Message Date
Chris Chua
86429dbf1e Using ARM Unified Assembler Language
Change-Id: Iae32a8ba8eff6087330e458fafc912a12fee4509
2023-03-23 13:28:22 -04:00
Rafaël Carré
45c7498f59 FS#11335 by me: make ARM assembly functions thumb-friendly
We can't pop into pc on ARMv4t when using thumb: the T bit won't be
modified if we are returning to a thumb function
Code running on ARMv4t should use the new ldrpc / ldmpc macros instead
of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc}
No modification on pure ARM builds and ARMv5+

Note: USE_THUMB is currently never defined, no targets can currently be
built with -mthumb, see FS#6734

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 04:41:36 +00:00
Rob Purchase
fb65077a18 Fix a typo in jpeg_idct8h which could cause display corruption on ARMv5+
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22577 a1c6a512-1295-4272-9138-f99709370657
2009-08-31 21:46:31 +00:00
Andrew Mahone
749c2b79d9 Remove ldrd from ARMv5 JPEG IDCT, remove old debug code selecting ARMv5 code for one function even when building for ARMv6.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21917 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 09:20:58 +00:00
Andrew Mahone
668a769ca4 Add new asmdefs mechanism for exporting information only available to the C compiler for use in asm files, and use it in arm jpeg idct. See apps/apps.make, apps/core_asmdefs.c, and apps/recorder/jpeg_idct_arm.S for details.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21831 a1c6a512-1295-4272-9138-f99709370657
2009-07-13 00:40:35 +00:00
Andrew Mahone
10803a7480 JPEG IDCT8 ARMv6 assembly, slight speedup vs ARMv5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21620 a1c6a512-1295-4272-9138-f99709370657
2009-07-03 10:03:17 +00:00
Andrew Mahone
017c1a1027 Core JPEG IDCT8 optimizations for ARMv5+, small optimizations for ARMv4.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21612 a1c6a512-1295-4272-9138-f99709370657
2009-07-02 09:57:03 +00:00
Andrew Mahone
815dcfdd35 Use hand-written constants table on ARMv5+ for JPEG IDCT, and load four 16-bit constants at a time with ldrd. Not useful for ARMv4, since one load per constant would still be needed, and limited range of ldrsh would force multiple copies of table.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21535 a1c6a512-1295-4272-9138-f99709370657
2009-06-28 02:32:43 +00:00
Andrew Mahone
3152bfc39a ARM assembly 8-point IDCT, both passes. No ARMv5/6 optimizations yet, aside from usat for final output.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21526 a1c6a512-1295-4272-9138-f99709370657
2009-06-27 09:21:22 +00:00
Rob Purchase
e2b018e7fe Fix a typo in jpeg_idct4h which caused garbled JPEGs on ARMv5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21520 a1c6a512-1295-4272-9138-f99709370657
2009-06-26 07:12:21 +00:00
Andrew Mahone
498ad469c9 2-point and 1-point JPEG IDCT ARM assembly, remove comment in jpeg_load.c about inline asm, change loop condition to be a bit safer in case of bad values being passed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21349 a1c6a512-1295-4272-9138-f99709370657
2009-06-19 08:26:05 +00:00
Andrew Mahone
6a0d931f38 Core JPEG decoder improvements:
For >8-point vertical IDCT, transpose the coefficients while decoding them, so that the vertical IDCT can read in rows rather than columns. This improves speed a bit for this size even using the C IDCT.
Remove inline ARM asm, replacing it with an external file containing pure asm IDCT functions.
Add jpeg_ prefix to JPEG IDCT functions since some of them will now be visible globally.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21345 a1c6a512-1295-4272-9138-f99709370657
2009-06-19 02:56:00 +00:00