<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylk8FuozAQhp_GXEZBxgRCDhySZiP10AutetjLytgDuCV2ZJtUefsdSLqrrfaw0koW1sjj__88M7ROX-tnd0J4c20Ai6hRQ-c8yIuPxl5ZvmP8wPj9m6XwMErbw27_-CUNhhjPYc4XR1q9Umlvp9T5nqIP825oo-wVHTCRN6gnhfrHy3x5kRYpPEn_Dg1nm29NVoD0CB4D-gshGQus5HsTX1FF8t29Ng32JkT0j7Zzs22-6zE29wt0GJiolLMhkq4ajMXjZFU0jpRE-USMW1K8eecpvAxIfrPnSdorDNJrUG6uxhQQXAdNBtJqwgO8oL9-zPlMPMDHYNQAYXDTqKFFUAPVh65FB_fKkcttLeEnNiy0_Xf0jkAvzmgiArbZ06Pj5O1naYHlRzLfwFzjJmP5npIOf9V6wdP5X7TKmxb_Q-sL5nopCcgQ8NSOZHF_oUaS8XzlsyK9ZSa6zvU238pETnFwvm7RhsFwniWTH-svY2HiMLWpcicKxvHyua3O3r1Rayk0IUxIzTsW-brYJkOdddW62GheoFZZl-tKV1ipslOyFG0n1skoWxxDzYo9E6KV6h2tJkeaEYpZcUj-n8LUggvBM1HxvCiLKs3zQikyV9sMtyVu2JrjSZoxnXXmqU98vUi2E03imo_UqPD7kOpqevrdFmgijCaOSzBDFwd4ns5n5-Ovxmm8GIUhWbDqheknuYsrPA>53459</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AVR] Support avrtiny devices
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AVR
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
benshi001
</td>
</tr>
</table>
<pre>
Some jobs needed for avrtiny:
1. Clang ABI for avrtiny: https://gcc.gnu.org/wiki/avr-gcc#Reduced_Tiny
2. Mark R0~R15 are reserved in `BitVector AVRRegisterInfo::getReservedRegs(const MachineFunction &MF)`
3. There are many hard coded use of R1 and R0 everywhere, which should be changed to
```
Register getRegZero(void) { return avrtiny ? R17 : R1; }
Register getRegTemp(void) { return avrtiny ? R16 : R0; }
```
4. The assembler should deny r0-r15.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNU8Fu4yAQ_Rp8GdXCEMf1wYek3Ug99OJWPexlhWFi0zoQAU6Vv9-xk-5qox5WRkajGd578wY6b87Niz8gvPsugkM0aGDvA6hTSNadmdww_sj49V_k8DAq18Nm-3RTBkNKxzjXix2tXuu8d1PuQ0_Rp_2wtFH1HSWYkC2aSaP59TofXqBFDs8qfEDLWfWjLUpQASFgxHAiSdYBW_OtTW-oE_Fu3toWexsThie39zOt3PSY2usBSkYm7rV3MRGuHqzD3eR0sp6QxPqZNNaEeOGWObwOSHwz50G5MwwqGNB-dmOKCH4PbQHKGZIHeMJw_pzrmXiAz8HqAeLgp9FAh6AH8oeOJQ9X54jlspbwSzYsavufGDwJPXlrSBGwaktNpym4L2uByR2RVzB73BZMbqno8VusVzwc_wdrfcHi_2DdyFwtloCKEQ_dSBTXDg0STOB3oSjzS2VmGmlqWass2TRiw8otTYeVj_AyHY8-pD_sBk9WY8ymMDY3t8WmYepy7Q8UjOPpa7s7Bv9OE6fQxjghzXRXylVZZ0Ojavo6JapCCBSm6JQSharEai9N1RmRjarDMc56mBCd0h_oDDHO4oQgfZltBBeCF-Key3Jd3udSllrvxUrXBdZrrNiK40HZMZ-1zFc5C80iq5voeq34SO7Hv0kyy_b0hhZKwldTGnxoOnRxsJwX2dJDszTwG9xfFZo">