title: Gas altmacro macro with a percent sign in a default parameter fails with "% operator needs absolute expression"
body: <p>I want to create a macro like the following:</p>
  
  <pre><code>.altmacro
  
  .macro assert_eq a, b=%eax
      LOCAL ok
      #...
  .endm
  </code></pre>
  
  <p>To be used as:</p>
  
  <pre><code>assert_eq $1
  assert_eq $1, %eax
  </code></pre>
  
  <p>I want <code>.altmacro</code> for <code>LOCAL</code> (I see the other possibility of using <code>\@</code>, but I want <code>LOCAL</code>).</p>
  
  <p>But when I try to compile this I get:</p>
  
  <pre><code>Error: % operator needs absolute expression
  </code></pre>
  
  <p>I am guessing that this problem is created by the fact that <code>b=%eax</code> is attempting to use another feature enabled by <code>.altmacro</code>: <a href="https://sourceware.org/binutils/docs/as/Altmacro.html#Altmacro" rel="nofollow">Expression results as strings</a>,
  since without <code>.altmacro</code> I could write this without problem.</p>
  
  <p>If this is true, how do I escape that for my macro to work? If not, what is wrong with my code?</p>
  
  <p>Bonus question: how to use <code>%</code>?</p>
  
  <p>GAS version: 2.23.52</p>