<html>
    <head>
      <base href="https://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 --- - integrated arm assembler should support pre-UAL syntax"
   href="https://llvm.org/bugs/show_bug.cgi?id=23507">23507</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>integrated arm assembler should support pre-UAL syntax
          </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: ARM
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>chh@google.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>Android Open Source Project has many arm and arm64 assembly files using pre-UAL
syntax. Some of them are easy to fix to compile with llvm, but many are from
other upstream open source projects and they are difficult to change.
To build the whole Android Open Source with only clang/llvm, llvm should
support some commonly used pre-UAL syntax. Examples are:

Code used in Android core libc. The following patch was in AOSP now,
but many of these pre-UAL are used in other AOSP upstream projects.
  <a href="https://android-review.googlesource.com/#/c/150171">https://android-review.googlesource.com/#/c/150171</a>
  <a href="https://android-review.googlesource.com/#/c/150191">https://android-review.googlesource.com/#/c/150191</a>
    ldrmib -> ldrbmi
    ldrcsb -> ldrbcs
    strmib -> strbmi
    strmih -> strhmi
    strcsb -> strbcs
    ldmmcsia -> ldmcs
    ldmmiia  -> ldmmi
    stmcsia  -> stmcs  or  stmiacs
    stmmiia  -> stmmi  or  stmiami
    stmhsia  -> stmiahs
    eoreqs   -> eorseq
    ldrneb   -> ldrbne
    strneb   -> strbne
    strneh   -> strhne
    streqb   -> strbeq
    ldmlsfd  sp!, ...  ->  popls ...

Code used in Chromium: <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED --- - [Meta] Chromium building with -integrated-as on ARM"
   href="show_bug.cgi?id=20422">https://llvm.org/bugs/show_bug.cgi?id=20422</a></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>