<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/114759>114759</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`push OFFSET symbol` generates wrong code for Intel syntax on i686
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
lhmouse
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/vfE68E3c9
```asm
; .att_syntax
; pushl $_foo
.intel_syntax noprefix
push OFFSET _foo
```
This generates a 16-bit push for i686-pc-linux and causes an error for i686-w64-mingw32:
> \<source\>:5:1: error: unsupported relocation type
> push OFFSET _foo
Expected behavior is that it should generate a 32-bit push that references `_foo` as an absolute address.
x86-64 is not affected.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U02P4yoQ_DX4ghJhICQ--JCZiaV3eoc39xGGts0TBouPfOyvX-HxbqKVVrIwandVdbXKMkYzOoAWHd7Q4aOSOU0-tHaafY5Q9V4_2imlJSJ2RrRDtBu97r1Nex9GRLsfiHbX4SJOF6YaRD4QOSNBvh8Z563C3vBepvQVHy7J-7O45DhZjCj_Grzfyuu5Ny6B3fqx80uAwWzAAsL_dt1_l0_8gvul-krzOZmIR3AQZIKIJa7Frjdp1cWDD9iIk9gtameNy3csncZK5lhaHYYQfHh23QTfzcaNN0bLLl5UELtgdHhH7D36HBSs9wti5wNi5xqx8zdVuWQX87L4kEDjANYrmYx3OD0WeHL9xeB6Xu4LqILuYZJXU4aLOE0yYZNwnHy2-rdhLDGjT79rV4ABAjgFESNBVnZBsFwNyz56mwtO6wAx7l-F7yexE7yoOZ-wHIZ1jK2l0i3TDWtkBW19ZORIGtHwamqp4j07asaJOg66B00J0_owCElVfdLHyrSUUF7XhJMTrxnf15IJ0EKfFG96qiTiBGZp7N7a61xCV5kYM7R1zY-HprKyBxvX9FLq4IbXr4jSEubQFtCuz2NEnFgTU3zSJJMstEiQ13XHx9x7W1byTM0teDdi5TWsYfinJBNvyfRuDUeVg_3zNzFpyv1e-RnRrohur90S_P-gEqLdOmpEtNu8XFv6MwAA___n8Rur">