[llvm-bugs] [Bug 52215] New: Missing register aliases for AVR for compatibility with gcc-avr's inline assembly
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Oct 19 06:15:18 PDT 2021
https://bugs.llvm.org/show_bug.cgi?id=52215
Bug ID: 52215
Summary: Missing register aliases for AVR for compatibility
with gcc-avr's inline assembly
Product: libraries
Version: 12.0
Hardware: Other
OS: other
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: AVR
Assignee: unassignedbugs at nondot.org
Reporter: marian.buschsieweke at ovgu.de
CC: llvm-bugs at lists.llvm.org
E.g. the avr-libc but also other AVR code written for gcc-avr heavily uses the
following aliases:
__tmp_reg__
__SREG__
__zero_reg__
__SP_H__
__SP_L__
also the aliases __RAMPZ__ and __EIND__ are occasionally used.
See [1] for their definitions.
This is the first time I looked into the LLVM source code, so I might be
talking nonsense here. I tried to fix this by amending
lib/Target/AVR/AVRRegisterInfo.td like this:
-def R0 : AVRReg<0, "r0">, DwarfRegNum<[0]>;
-def R1 : AVRReg<1, "r1">, DwarfRegNum<[1]>;
+def R0 : AVRReg<0, "r0", [], ["__tmp_reg__"]>, DwarfRegNum<[0]>;
+def R1 : AVRReg<1, "r1", [], ["__zero_reg__"]>, DwarfRegNum<[1]>;
etc. - but to no avail.
I also tried to just emit assignments for the alias via `void
AVRAsmPrinter::emitStartOfAsmFile(Module &M)`, but this didn't work for me
either.
I think that adding the aliases should be relatively trivial for someone with
same basic understanding of the LLVM code - which I sadly lack.
Also note that according to [1] the AVRtiny family has a different mapping
(e.g. __tmp_reg__ usually is r0, but on AVRtiny it is r16).
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgcc/config/avr/lib1funcs.S;h=ac101b49f03e340e93e16283eb47146ef47290c2;hb=HEAD
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20211019/6277b684/attachment.html>
More information about the llvm-bugs
mailing list