summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/asm/arm/lcd-as-memframe.S2
-rw-r--r--firmware/asm/arm/memcpy.S2
-rw-r--r--firmware/asm/arm/memmove.S2
-rw-r--r--firmware/asm/arm/memset.S2
-rw-r--r--firmware/asm/arm/memset16.S2
-rw-r--r--firmware/export/config.h12
-rw-r--r--firmware/target/arm/ata-as-arm.S1
7 files changed, 21 insertions, 2 deletions
diff --git a/firmware/asm/arm/lcd-as-memframe.S b/firmware/asm/arm/lcd-as-memframe.S
index d42b2a920d..f69f6e5080 100644
--- a/firmware/asm/arm/lcd-as-memframe.S
+++ b/firmware/asm/arm/lcd-as-memframe.S
@@ -24,6 +24,8 @@
24#include "config.h" 24#include "config.h"
25#include "cpu.h" 25#include "cpu.h"
26 26
27 .syntax unified
28
27/**************************************************************************** 29/****************************************************************************
28 * void lcd_copy_buffer_rect(fb_data *dst, fb_data *src, int width, 30 * void lcd_copy_buffer_rect(fb_data *dst, fb_data *src, int width,
29 * int height); 31 * int height);
diff --git a/firmware/asm/arm/memcpy.S b/firmware/asm/arm/memcpy.S
index 86fc6b7930..1fbb6660e9 100644
--- a/firmware/asm/arm/memcpy.S
+++ b/firmware/asm/arm/memcpy.S
@@ -35,6 +35,8 @@
35#define push lsr 35#define push lsr
36#endif 36#endif
37 37
38 .syntax unified
39
38/* Prototype: void *memcpy(void *dest, const void *src, size_t n); */ 40/* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
39/* Prototype: void *mempcpy(void *dest, const void *src, size_t n); */ 41/* Prototype: void *mempcpy(void *dest, const void *src, size_t n); */
40 42
diff --git a/firmware/asm/arm/memmove.S b/firmware/asm/arm/memmove.S
index e5c9b42928..cf22a74622 100644
--- a/firmware/asm/arm/memmove.S
+++ b/firmware/asm/arm/memmove.S
@@ -35,6 +35,8 @@
35#define push lsr 35#define push lsr
36#endif 36#endif
37 37
38 .syntax unified
39
38 .text 40 .text
39 41
40/* 42/*
diff --git a/firmware/asm/arm/memset.S b/firmware/asm/arm/memset.S
index d727f2a5ec..ef5cdb5819 100644
--- a/firmware/asm/arm/memset.S
+++ b/firmware/asm/arm/memset.S
@@ -20,6 +20,8 @@
20 ****************************************************************************/ 20 ****************************************************************************/
21#include "config.h" 21#include "config.h"
22 22
23 .syntax unified
24
23 .section .icode,"ax",%progbits 25 .section .icode,"ax",%progbits
24 26
25 .align 2 27 .align 2
diff --git a/firmware/asm/arm/memset16.S b/firmware/asm/arm/memset16.S
index 226eac39e1..851b9207a2 100644
--- a/firmware/asm/arm/memset16.S
+++ b/firmware/asm/arm/memset16.S
@@ -20,6 +20,8 @@
20 ****************************************************************************/ 20 ****************************************************************************/
21#include "config.h" 21#include "config.h"
22 22
23 .syntax unified
24
23 .section .icode,"ax",%progbits 25 .section .icode,"ax",%progbits
24 26
25 .align 2 27 .align 2
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 80d59ea836..9812db9161 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -1018,14 +1018,19 @@ Lyre prototype 1 */
1018 * These macros are for switching on unified syntax in inline assembly. 1018 * These macros are for switching on unified syntax in inline assembly.
1019 * Older versions of GCC emit assembly in divided syntax with no option 1019 * Older versions of GCC emit assembly in divided syntax with no option
1020 * to enable unified syntax. 1020 * to enable unified syntax.
1021 *
1022 * FIXME: This needs to be looked at after the toolchain bump
1023 */ 1021 */
1022#if (__GNUC__ < 8)
1024#define BEGIN_ARM_ASM_SYNTAX_UNIFIED ".syntax unified\n" 1023#define BEGIN_ARM_ASM_SYNTAX_UNIFIED ".syntax unified\n"
1025#define END_ARM_ASM_SYNTAX_UNIFIED ".syntax divided\n" 1024#define END_ARM_ASM_SYNTAX_UNIFIED ".syntax divided\n"
1025#else
1026#define BEGIN_ARM_ASM_SYNTAX_UNIFIED
1027#define END_ARM_ASM_SYNTAX_UNIFIED
1028#endif
1026 1029
1027#if defined(CPU_ARM) && defined(__ASSEMBLER__) 1030#if defined(CPU_ARM) && defined(__ASSEMBLER__)
1031#if (__GNUC__ < 8)
1028.syntax unified 1032.syntax unified
1033#endif
1029/* ARMv4T doesn't switch the T bit when popping pc directly, we must use BX */ 1034/* ARMv4T doesn't switch the T bit when popping pc directly, we must use BX */
1030.macro ldmpc cond="", order="ia", regs 1035.macro ldmpc cond="", order="ia", regs
1031#if ARM_ARCH == 4 && defined(USE_THUMB) 1036#if ARM_ARCH == 4 && defined(USE_THUMB)
@@ -1043,6 +1048,9 @@ Lyre prototype 1 */
1043 ldr\cond pc, [sp], #4 1048 ldr\cond pc, [sp], #4
1044#endif 1049#endif
1045.endm 1050.endm
1051#if (__GNUC__ < 8)
1052.syntax divided
1053#endif
1046#endif 1054#endif
1047 1055
1048#if defined(CPU_COLDFIRE) && defined(__ASSEMBLER__) 1056#if defined(CPU_COLDFIRE) && defined(__ASSEMBLER__)
diff --git a/firmware/target/arm/ata-as-arm.S b/firmware/target/arm/ata-as-arm.S
index 16c2928bf1..cec4a7e235 100644
--- a/firmware/target/arm/ata-as-arm.S
+++ b/firmware/target/arm/ata-as-arm.S
@@ -21,6 +21,7 @@
21 21
22#include "config.h" 22#include "config.h"
23 23
24 .syntax unified
24 25
25#if CONFIG_CPU == PP5002 26#if CONFIG_CPU == PP5002
26 /* Causes ATA retries on iPod G3 probably related to improper controller 27 /* Causes ATA retries on iPod G3 probably related to improper controller