#4083 closed defect (fixed)

i386: bad asm in smp mode (rtems.git/5)

Reported by: Gedare Bloom Owned by: Gedare Bloom
Priority: normal Milestone: 5.1
Component: arch/i386 Version: 5
Severity: normal Keywords:
Cc: Blocked By:

Description (last modified by Gedare Bloom)

Cloned from #4076:

A note for me (or someone) to make the fix outlined on the mailing list.

cpukit/score/cpu/i386/include/rtems/asm.h:157   movb
imps_apic_cpu_map(\REG),\REG        /* CPU ID in REG */

The assembler is right to complain. movb has to target one of the
1-byte mnemonics, so this should be %al for the LSB of %eax. One needs
to check through this logic carefully, but I think the right thing to
do here is:
movzbl     imps_apic_cpu_map(\REG),\REG

That should do the trick. Can you test it locally?

Sure! Builds fine and testsuite testing reveals:

Joel would like this fixed on 5.

Change History (2)

comment:1 Changed on Sep 21, 2020 at 5:23:05 PM by Gedare Bloom

Description: modified (diff)

comment:2 Changed on Oct 2, 2020 at 4:40:19 PM by Gedare Bloom <gedare@…>

Resolution: fixed
Status: assignedclosed

In 40f23cea/rtems:

i386/score: fix assembly mnemonic

This is a backport for assembler error observed in 6. Although the
assembler error does not appear in 5, the backport was requested.

Closes #4083.

Note: See TracTickets for help on using tickets.