Move code evaluation from preprocessor to compiler so
both if() ladders are processed. Mostly style change.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/xtensa/xtfpga.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index 955e8867a3..228f00b045 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -415,8 +415,7 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
}
}
if (entry_point != env->pc) {
- uint8_t boot[] = {
-#if TARGET_BIG_ENDIAN
+ uint8_t boot_be[] = {
0x60, 0x00, 0x08, /* j 1f */
0x00, /* .literal_position */
0x00, 0x00, 0x00, 0x00, /* .literal entry_pc */
@@ -425,7 +424,8 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
0x10, 0xff, 0xfe, /* l32r a0, entry_pc */
0x12, 0xff, 0xfe, /* l32r a2, entry_a2 */
0x0a, 0x00, 0x00, /* jx a0 */
-#else
+ };
+ uint8_t boot_le[] = {
0x06, 0x02, 0x00, /* j 1f */
0x00, /* .literal_position */
0x00, 0x00, 0x00, 0x00, /* .literal entry_pc */
@@ -434,14 +434,16 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
0x01, 0xfe, 0xff, /* l32r a0, entry_pc */
0x21, 0xfe, 0xff, /* l32r a2, entry_a2 */
0xa0, 0x00, 0x00, /* jx a0 */
-#endif
};
+ const size_t boot_sz = TARGET_BIG_ENDIAN ? sizeof(boot_be)
+ : sizeof(boot_le);
+ uint8_t *boot = TARGET_BIG_ENDIAN ? boot_be : boot_le;
uint32_t entry_pc = tswap32(entry_point);
uint32_t entry_a2 = tswap32(tagptr);
memcpy(boot + 4, &entry_pc, sizeof(entry_pc));
memcpy(boot + 8, &entry_a2, sizeof(entry_a2));
- cpu_physical_memory_write(env->pc, boot, sizeof(boot));
+ cpu_physical_memory_write(env->pc, boot, boot_sz);
}
} else {
if (flash) {
--
2.45.2
On 9/30/24 00:34, Philippe Mathieu-Daudé wrote:
> Move code evaluation from preprocessor to compiler so
> both if() ladders are processed. Mostly style change.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/xtensa/xtfpga.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 955e8867a3..228f00b045 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -415,8 +415,7 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
> }
> }
> if (entry_point != env->pc) {
> - uint8_t boot[] = {
> -#if TARGET_BIG_ENDIAN
> + uint8_t boot_be[] = {
> 0x60, 0x00, 0x08, /* j 1f */
> 0x00, /* .literal_position */
> 0x00, 0x00, 0x00, 0x00, /* .literal entry_pc */
> @@ -425,7 +424,8 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
> 0x10, 0xff, 0xfe, /* l32r a0, entry_pc */
> 0x12, 0xff, 0xfe, /* l32r a2, entry_a2 */
> 0x0a, 0x00, 0x00, /* jx a0 */
> -#else
> + };
> + uint8_t boot_le[] = {
Fix these to use static const?
r~
On 3/10/24 18:35, Richard Henderson wrote:
> On 9/30/24 00:34, Philippe Mathieu-Daudé wrote:
>> Move code evaluation from preprocessor to compiler so
>> both if() ladders are processed. Mostly style change.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>> hw/xtensa/xtfpga.c | 12 +++++++-----
>> 1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
>> index 955e8867a3..228f00b045 100644
>> --- a/hw/xtensa/xtfpga.c
>> +++ b/hw/xtensa/xtfpga.c
>> @@ -415,8 +415,7 @@ static void xtfpga_init(const XtfpgaBoardDesc
>> *board, MachineState *machine)
>> }
>> }
>> if (entry_point != env->pc) {
>> - uint8_t boot[] = {
>> -#if TARGET_BIG_ENDIAN
>> + uint8_t boot_be[] = {
>> 0x60, 0x00, 0x08, /* j 1f */
>> 0x00, /* .literal_position */
>> 0x00, 0x00, 0x00, 0x00, /* .literal entry_pc */
^^^^^^^^^^^^^^^^
>> @@ -425,7 +424,8 @@ static void xtfpga_init(const XtfpgaBoardDesc
>> *board, MachineState *machine)
>> 0x10, 0xff, 0xfe, /* l32r a0, entry_pc */
>> 0x12, 0xff, 0xfe, /* l32r a2, entry_a2 */
>> 0x0a, 0x00, 0x00, /* jx a0 */
>> -#else
>> + };
>> + uint8_t boot_le[] = {
>
> Fix these to use static const?
We use memcpy() to up update $pc/$a2 in place.
>
>
> r~
On 9/30/24 00:34, Philippe Mathieu-Daudé wrote:
> Move code evaluation from preprocessor to compiler so
> both if() ladders are processed. Mostly style change.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/xtensa/xtfpga.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 955e8867a3..228f00b045 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -415,8 +415,7 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
> }
> }
> if (entry_point != env->pc) {
> - uint8_t boot[] = {
> -#if TARGET_BIG_ENDIAN
> + uint8_t boot_be[] = {
> 0x60, 0x00, 0x08, /* j 1f */
> 0x00, /* .literal_position */
> 0x00, 0x00, 0x00, 0x00, /* .literal entry_pc */
> @@ -425,7 +424,8 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
> 0x10, 0xff, 0xfe, /* l32r a0, entry_pc */
> 0x12, 0xff, 0xfe, /* l32r a2, entry_a2 */
> 0x0a, 0x00, 0x00, /* jx a0 */
> -#else
> + };
> + uint8_t boot_le[] = {
> 0x06, 0x02, 0x00, /* j 1f */
> 0x00, /* .literal_position */
> 0x00, 0x00, 0x00, 0x00, /* .literal entry_pc */
> @@ -434,14 +434,16 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
> 0x01, 0xfe, 0xff, /* l32r a0, entry_pc */
> 0x21, 0xfe, 0xff, /* l32r a2, entry_a2 */
> 0xa0, 0x00, 0x00, /* jx a0 */
> -#endif
> };
> + const size_t boot_sz = TARGET_BIG_ENDIAN ? sizeof(boot_be)
> + : sizeof(boot_le);
> + uint8_t *boot = TARGET_BIG_ENDIAN ? boot_be : boot_le;
> uint32_t entry_pc = tswap32(entry_point);
> uint32_t entry_a2 = tswap32(tagptr);
>
> memcpy(boot + 4, &entry_pc, sizeof(entry_pc));
> memcpy(boot + 8, &entry_a2, sizeof(entry_a2));
> - cpu_physical_memory_write(env->pc, boot, sizeof(boot));
> + cpu_physical_memory_write(env->pc, boot, boot_sz);
> }
> } else {
> if (flash) {
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
On 30/09/2024 09.34, Philippe Mathieu-Daudé wrote: > Move code evaluation from preprocessor to compiler so > both if() ladders are processed. Mostly style change. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > hw/xtensa/xtfpga.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) Reviewed-by: Thomas Huth <thuth@redhat.com>
© 2016 - 2026 Red Hat, Inc.