<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVMtu2zAQ_BrpsqghU5ZsHXRw4gYI0BZBU_ROkSuJjUQKfMTx33cp2U5aGL00IOSQS87OPmYbI0_1o4ejCYOEBqGzyD2oFpwZ0Wh8t7woLQG1CV0P3oAapwFH1B5cmCZjPbTGwjSJcgMNdyhhskagc8Y68D2BBofAIWfQKA9cSktGcBMXuEqyQ5Ltl-_Tcw7KAdeAbzw6AbOw8b3S3RUqgs7XZLwtgrXEZTiRB89thx4StvvyyhJWQRM8SEMvtCGWQQuvjAZh6ImIT5SGxvgeJnNEOwcQUc-7M5z7gyNlbDQuvm0oXy8OjoreX6Eno7RHez7-EEmDFEKS7z9iJWW2LDFNy0nQTnWaMjgYCnj-fF4AKKYbxreE3cON8xMFf_axvbu4rCz6YDW8UYL2dCW_WLaHj6x4oBqfvT55C0l-iBmVKAZ_miKRhJVXVhWty-YKOH8pETBypelB_JdyKSJbYbTzIHpuIws6fU2Ku6Q4_IvxOxsCW0eUWN0bAVwS-kdXWSODiA303kp8zpLvEQalqT1M-16aMts7h3YuZ8vVgJJs8G29ol74yYeAPy5ZqGJuYnq-sZtGVtL698ufPy7XEsbulOb2BGZCyz1JKqbbwRhcTKQXfcIodvZXeM-Io6MwXnCRRUsqDpbUyx3EXtSSOoMqSjq-CpdOSEpR43O_Al0V1Ks9f0UgeNJYublT_jt2jrYXyCR_-Oh4r09HfnKxGo_nWcGniYSluMc4R7g-RRdiMUm58IujYnY6YpRfrIFVXU86VVGUMevENsrYkf6I6iqVdS6rvOIptWZvbK2-msO6qnZpsEPdez-5WD32QKsj2YVmJcxIm2F4vfx8opH0i-Bpq5wLSLQfCrZjZdrX5W7bbgqUWVWU9LfDYlNluRA7kfEy42068AYHV8c-ZUzjEWaIWIrikP4_A1WzjK3XjMW1XherLcNctOtcFEXLt0WebDIkJQ2riLMytkttPUM2gQq0yQblaEpdjdzN8wDrRVipV36YN09P97SH5_PUjuOa5rEwEpdxdXNApzPbeqb6G62-_IA>52826</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [PPC] Support 64 bit code with 32 bit address space.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          iMoD1998
      </td>
    </tr>
</table>

<pre>
    It would be great if someone would be kind enough to implement support for ppc64 based processors that use a 32 bit address space.

PS3 is an example of something that uses this and is currently a target (Lv2) but does not function correctly in both powerpc64 and powerpc targets.

It mostly breaks with function pointers with an example being:

```cpp
unsigned long long Example(unsigned long long x, unsigned long long y)
{
        return x * y;
}

auto ExamplePtr = (decltype(&Example))Example;

int main(int argc, const char* argv[])
{
        return ExamplePtr(1, 2);
}
```

Producing something along the lines of:
`Assertion failed: N1.getValueType() == N2.getValueType() && N1.getValueType() == VT && "Binary operator types must match!"`

Seems like this feature was intended to be implemented at one point as can have `use64BitRegs` feature?

Anyways, I would appreciate if anyone could add this or point me in the right direction to get started.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9VF1v2zoM_TXOC3GDWI6d5MEP6bICA7ahWIe9yxJta7UlQx9N8-9HOh_tLoIBghOJEnl4yMPG6VP9JcLRpUFDg9B5lBFMC8GN6Cy-W16M1YDWpa6H6MCM04Aj2gghTZPzEVrnYZpUtYZGBtQweacwBOcDxJ6cpoAgoRDQmAhSa09GCJNUuMxWh2y1P3-fngswAaQFfJMcBNwZTeyN7W6u2Ol8TfNtlbwnLMOJIkTpO4yQie3XV5GJHTQpgnb0wjpCmayKxllQjp4ofmIsNC72MLkj-jkB9nrZXdyFvzASY6ML_LYhvl4CHA29v7menLER_eX4QyYNUgpZsf_oK6tW56Wm6XySbDCdJQYHRwnPn89nB5TTHeNbJj7BnfMTJX-JsXm4htx5jMlbeCOC9nSluFo2h4-oZKIaX6I-RQ9ZcWBGNaohniYGkonqhmpH67q5OZy_RASM0lh6wH-JS8VolbMhguqlZxR0-pqVD1l5-BfidzTkLGcvXN07CVwJ_aurvNNJcQO9t5KcWYo9wmAstYdr30tTrfYhoJ_L2UozoCYbfM-X1Au_5JDw55WFHXPD9HwXd42iovXvl79-Xq9lQjwYK_0J3IReRpIU0x1gTIGJjKrPBOUu_pfeM-IYKI0XPMuiJRUnT-qVAbgXrabOoIqSjm_CpROSEmt87legq4p6tZevCOSeNFatH0z8gV2g7dVlVjx-DLy3p6M8Ba7Gl8uskNNEwjIyIs8RaU8cQp1NWp_x8aiYg47I8uMaeNP1pFPDomTWCS3LOJD-COpyoetC74qdXEQTB6ypX56ePlHLwPNl_vDgocminMaz8O6OmkXyQ93HOAUutnik1dHl1CyVG2kzDK_Xn_9ogv0mNLQ1ISSkLB9LsRXVoq9F0-RFtUaVayzbZr3VldhUrdhsmnzdNNvFIBscAsOkalk8wuyCK1ceFqYWK5HnQvDK83K5EVioNi9UWbZyUxbZeoUkm2HJOJbOdwtfz5CaRNVYrwYTaCTdjDLM4p9ZYf-k3t752nxzh3y32y7m2PWM_Q9aWueH">