On 25 Jan 2023, at 06:27, Flávio Cruz <flaviocruz@gmail.com> wrote:
>> On Tue, Jan 24, 2023 at 2:54 AM Samuel Thibault <samuel.thibault@gnu.org> wrote:
>> Flávio Cruz, le mar. 24 janv. 2023 01:15:15 -0500, a ecrit:
>> > + int kernel_id;
>> > + unsigned long flags;
>> > +
>> > + cpu_intr_save(&flags);
>> > +
>> > + kernel_id = apic_get_cpu_kernel_id(apic_get_current_cpu());
>> > +
>> > + cpu_intr_restore(flags);
>> > +
>> > + return kernel_id;
>> >
>> >
>> > Might be unrelated to this change, but will this be portable for x86_64? It
>> > seems we either should use uint32_t to store EFLAGS or use pushfq/popfq to get
>> > RFLAGS instead.
>>
>> cpu_get_eflags will already use pushfq/popfq, won't it? (since it takes
>> the unsigned long output parameter.
>
> I tried it in compiler explorer and it shows we have to use pushfq explicitly: https://godbolt.org/z/MYjPaEh31
Not sure what you’re trying to show? pushf assembles to the same thing as pushfq.
I think you are right - just looked at the objdump output. Sorry for the noise
Jess
>> Samuel