Hi Maciej, On Thu, Nov 22, 2018 at 04:31:13PM +0000, Maciej W. Rozycki wrote: > On Mon, 15 Oct 2018, Paul Burton wrote: > > asm/asm.h contains CPRESTORE, CPADD & CPLOAD macros that are intended > > for use with position independent code, but are not used anywhere in the > > kernel - along with a comment to that effect. Remove the dead code. > > FYI, this was I believe for consistency with the <sys/asm.h> glibc header > and in the days since lost in the mist to time may have actually been used > by the userland too. > > Overall the contents of this header used to be somewhat standardised in a > platform-independent way, e.g. the IDT MIPS software manual says[1]: > > "Many toolchains supply a header file <asm.h>, which provides C-style > macros to generate the appropriate directives, as required [...]" > > and then goes on to use <idtc/asm.h> across the many snippets of code > included throughout. > > References: > > [1] "IDT MIPS Microprocessor Family Software Reference Manual", Integrated > Device Technology, Inc., Version 2.0, October 1996, Chapter 9 > "Assembler Language Programming", p. 9-17 > > [Yes, it did have a chapter on the MIPS assembly language, including the > syntax, which some people confuse with the syntax architecture manuals use > for the instruction set.] > > Maciej Thanks for the background - I figured these macros probably came from some standard header used in multiple projects at some point in the past, and that maybe it used to be useful keeping these macros to keep our header in sync with some external copy of it. In today's reality though the macros are dead code, we never do synchronize the header with anything external, and I doubt anyone looking to work on the kernel will start by reading the IDT MIPS Microprocessor Family Software Reference Manual. If, bizarrely, someone did that & got stuck because these macros aren't defined then I suspect it would be among the least of their problems. Thanks, Paul