<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - unknown directives in integrated aarch64 assembler"
   href="http://llvm.org/bugs/show_bug.cgi?id=18920">18920</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>unknown directives in integrated aarch64 assembler
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Backend: AArch64
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>simon.hosie@arm.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>While .cpu is a valid directive in the aarch32 assembler, it seems to be
missing from aarch64.  I tried the following:

.cpu cortex-a57+simd

which works in GNU assembler.

Also .dword (.xword is accepted instead, and that's what compilers generate,
but GNU accepts both).


Immediates and immediate arithmetic seem to be problematic, too.  eg.,

    cmp w2, #(block_end - block) >> 3

gives me "expected compatible register, symbol or integer in range [0, 4095]"
and

    bic x6, x4, #1

gives me "invalid operand for instruction".

Work was done on the aarch32 assembler recently:
<a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - List of ARM assembly directives that the Clang integrated-as cannot handle."
   href="show_bug.cgi?id=18199">http://llvm.org/bugs/show_bug.cgi?id=18199</a>

Perhaps some of the changes there can be stretched to fit here too?</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>