------- Comment #4 from dean at arctic dot org 2009-09-17 10:51 ------- (In reply to comment #3) > For the push/pop you need to add 2 bytes to the CFI which makes it useless > compared to mov $imm32,reg. >
note that my push/pop example said -128..127 and "push $imm8"... not imm32. GNU assembler version 2.18.0 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.18.0.20080103 % cat t.S mov $0x7f,%eax push $0x7f pop %rax % objdump -dr t.o ... 0000000000000000 <.text>: 0: b8 7f 00 00 00 mov $0x7f,%eax 5: 6a 7f pushq $0x7f 7: 58 pop %rax i count 5 bytes vs. 3 bytes. similarly: 0: b8 80 ff ff ff mov $0xffffff80,%eax 5: 6a 80 pushq $0xffffffffffffff80 7: 58 pop %rax -dean -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32803