Commit graph

13 commits

Author SHA1 Message Date
Solomon Peachy
8c86fb6da0 arm: Use -masm-syntax-unified when compiling with gcc8 or newer
Annoyingly, this makes all of the '.S' files we compile get treated as
divided syntax, so we need to make the syntax in them explicit.

Change-Id: I56a3916b7b24c84a1214a5d6bc4ed4d651f002cf
2024-05-08 21:45:42 -04:00
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