<div dir="ltr"><div>Both FreeBSD and DragonFly developers in the past have simply use .byte assembly directives to lay down opcodes with no assembly equivalents.  For example, in asmacros.h there is:<br><br>#define NON_GPROF_RET               .byte 0xc3      <br><br></div>Which is used in assembly files for situations where the various RETs have been #defined to be other things for profiling.  <br><br>This is a last resort usually.  It has been used for a few floating point ops here and there in the past, and ultimately the assembly gains the needed opcodes and they can be replaced with the proper name.  I don't think there is a whole lot of it in the current code bases.<br><div><br>-Matt<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 20, 2014 at 4:10 PM, françai s <span dir="ltr"><<a href="mailto:romapera15@gmail.com" target="_blank">romapera15@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think that the only case where you have to resort to writing binary<br>
code manually<br>
is when the assembler cannot output the desired code for some reason.<br>
If I recall correctly, there is only one such case in the HelenOS<br>
sources:<br>
<br>
<a href="http://trac.helenos.org/browser/mainline/kernel/arch/mips32/include/debug.h?rev=mainline%2C1446.3.1" target="_blank">http://trac.helenos.org/browser/mainline/kernel/arch/mips32/include/debug.h?rev=mainline%2C1446.3.1</a><br>
<br>
Here they manually encode the opcodes of five special debugging<br>
instructions for the MSIM MIPS simulator (these instructions are not<br>
part of the standard MIPS ISA, thus the assembler does not know them).<br>
<br>
But the developers of FreeBSD not write binary code manually.<br>
<br>
How the DragonflyBSD developers solve problems that are not resolved<br>
by Assembly?<br>
</blockquote></div><br></div>