Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Oct 2016 11:06:38 -0300
From:      =?UTF-8?Q?fran=C3=A7ai_s?= <romapera15@gmail.com>
To:        freebsd-drivers@freebsd.org
Subject:   What are the codes that contain the marcos that are created directly or the .word directives?
Message-ID:  <CAK_6RwfED1tMBLLaArBjS7Uq2PHk3YAsa3YH%2BmPS37=c%2ByKaVQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
It has come to my attention the following:

"The minority of  FreeBSD developers either create a macro expands to
something like ".word <foo> =E2=80=9C or sometimes the .word <foo> is just =
hard
coded inline when there=E2=80=99s only going to be one of them, sometimes e=
xpose
them both in assembly and in C code, in which case what we do varies a bit
to accommodate the different language=E2=80=99s syntax. It is rare, but has
happened, that we only expose it to C code.

Generally, though, the minority of  FreeBSD developers  try to add support
for the opcodes to gas so that get the constraint testing it does (making
sure the opcode is supported at the level you are compiling, making sure it
isn=E2=80=99t in a delay slot or violating some other precondition for its =
use).

People generally don=E2=80=99t write in raw machine opcodes. That is indepe=
ndent of
FreeBSD.

However, a few, specialized people will find the need to do it from time to
time. Usually because they are porting FreeBSD to a newer processor that
needs newer opcodes to do context switching, optimize interrupt handling,
code with a new type of cache coherency, etc. These people look up the
assembler in the docs from the vendor and then create the .word workaround
to make sure things work. If they have the time, they may add it to our
somewhat ancient gas assembler as well."




A few, specialized people still will find the need of  write in raw machine
opcodes from time to time  because usually  they are porting FreeBSD to a
newer processor that needs newer opcodes to do context switching, optimize
interrupt handling, code with a new type of cache coherency, etc?

These people still look up the assembler in the docs from the vendor and
then create the .word workaround to make sure things work?

If they still have the time, they still may add it to our somewhat ancient
gas assembler as well?

Some developers of FreeBSD still use the marcos that I described above
sometimes when doing specific, low-level coding?

A handful of developers of FreeBSD still  create the marcos directly or use
the .word directives in their work to make certain things work that cannot
work otherwise?

If yes, what are the codes that contain  the marcos that I described above
sometimes when doing specific, low-level coding?

What are the codes that contain the marcos that are created directly or the
.word directives that are used in their work to make certain things work
that cannot work otherwise?




If is not possible speak what are all this codes, please, quote good amount
of examples.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK_6RwfED1tMBLLaArBjS7Uq2PHk3YAsa3YH%2BmPS37=c%2ByKaVQ>