<html lang="en">
<head>
<title>AVR Pseudo Instructions - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="AVR_002dDependent.html#AVR_002dDependent" title="AVR-Dependent">
<link rel="prev" href="AVR-Opcodes.html#AVR-Opcodes" title="AVR Opcodes">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".

Copyright (C) 1991-2019 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled ``GNU Free Documentation License''.

-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="AVR-Pseudo-Instructions"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="AVR-Opcodes.html#AVR-Opcodes">AVR Opcodes</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="AVR_002dDependent.html#AVR_002dDependent">AVR-Dependent</a>
<hr>
</div>

<h4 class="subsection">9.5.4 Pseudo Instructions</h4>

<p>The only available pseudo-instruction <code>__gcc_isr</code> can be activated by
option <samp><span class="option">-mgcc-isr</span></samp>.

     <dl>
<dt><code>__gcc_isr 1</code><dd>Emit code chunk to be used in avr-gcc ISR prologue. 
It will expand to at most six 1-word instructions, all optional:
push of <code>tmp_reg</code>, push of <code>SREG</code>,
push and clear of <code>zero_reg</code>, push of <var>Reg</var>.

     <br><dt><code>__gcc_isr 2</code><dd>Emit code chunk to be used in an avr-gcc ISR epilogue. 
It will expand to at most five 1-word instructions, all optional:
pop of <var>Reg</var>, pop of <code>zero_reg</code>,
pop of <code>SREG</code>, pop of <code>tmp_reg</code>.

     <br><dt><code>__gcc_isr 0, </code><var>Reg</var><dd>Finish avr-gcc ISR function.  Scan code since the last prologue
for usage of: <code>SREG</code>, <code>tmp_reg</code>, <code>zero_reg</code>. 
Prologue chunk and epilogue chunks will be replaced by appropriate code
to save / restore <code>SREG</code>, <code>tmp_reg</code>, <code>zero_reg</code> and <var>Reg</var>.

   </dl>

   <p>Example input:

<pre class="example">     __vector1:
         __gcc_isr 1
         lds r24, var
         inc r24
         sts var, r24
         __gcc_isr 2
         reti
         __gcc_isr 0, r24
</pre>
   <p>Example output:

<pre class="example">     00000000 &lt;__vector1&gt;:
        0:   8f 93           push    r24
        2:   8f b7           in      r24, 0x3f
        4:   8f 93           push    r24
        6:   80 91 60 00     lds     r24, 0x0060     ; 0x800060 &lt;var&gt;
        a:   83 95           inc     r24
        c:   80 93 60 00     sts     0x0060, r24     ; 0x800060 &lt;var&gt;
       10:   8f 91           pop     r24
       12:   8f bf           out     0x3f, r24
       14:   8f 91           pop     r24
       16:   18 95           reti
</pre>
   <!-- Copyright (C) 2005-2019 Free Software Foundation, Inc. -->
<!-- This is part of the GAS manual. -->
<!-- For copying conditions, see the file as.texinfo. -->
<!-- man end -->
   </body></html>

