[LLVMdev] clang .code16 with -Os producing larger code that it needs to

David Woodhouse dwmw2 at infradead.org
Mon Feb 23 04:07:53 PST 2015


On Fri, 2015-02-20 at 13:47 -0500, Rafael EspĂ­ndola wrote:
> > Your task, should you choose to accept it, is to make it cope with other
> > forms of relaxation where necessary.
> 
> And if not, please open a bug :-)

http://llvm.org/bugs/show_bug.cgi?id=22662

FWIW I could reproduce the 'movl foo, %ebx' one but a relative jump
*was* using 16 bits (although gas uses 8):

 $ cat foo.S
.code16
	jae foo
	movl (foo), %ebx
foo:
 $ gcc -c -oa.out foo.S   ; llvm-objdump -d -triple=i686-pc-linux-code16  

a.out:	file format ELF64-x86-64

Disassembly of section .text:
.text:
       0:	73 05                                        	jae	5
       2:	66 8b 1e 00 00                               	movl	0, %ebx
 $ llvm-mc -filetype=obj foo.S | llvm-objdump -d -triple=i686-pc-linux-code16 - 

<stdin>:	file format ELF64-x86-64

Disassembly of section .text:
.text:
       0:	0f 83 08 00                                  	jae	8
       4:	67 66 8b 1d 00 00 00 00                      	movl	0, %ebx


-- 
dwmw2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5745 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150223/da6fa2ea/attachment.bin>


More information about the llvm-dev mailing list