Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Compares two methods of testing bit 5
- # Clarify compiler behaviour for stackoverflow.com topic 9767686
- # Created by G Bulmer on 19/03/2012.
- main.o: file format elf32-littlearm
- Disassembly of section .text.main:
- 00000000 <main>:
- #include "dummy_printf.h" // get rid of stdio.h
- #include "original_bit5.h"
- #include "my_bit5.h"
- int main (int argc, const char * argv[]) {
- 0: b508 push {r3, lr}
- int number = 16;
- original_bit5(number);
- 2: 2010 movs r0, #16
- 4: f7ff fffe bl 0 <original_bit5>
- my_bit5(number);
- 8: 2010 movs r0, #16
- a: f7ff fffe bl 0 <my_bit5>
- return 0;
- }
- e: 2000 movs r0, #0
- 10: bd08 pop {r3, pc}
- 12: bf00 nop
- original_bit5.o: file format elf32-littlearm
- Disassembly of section .text.original_bit5:
- 00000000 <original_bit5>:
- #include "original_bit5.h"
- void original_bit5(int number) {
- int mask = 1<<5;
- if ((number & mask) == 0)
- 0: f010 0f20 tst.w r0, #32
- 4: d005 beq.n 1a <original_bit5+0x1a>
- dummy_printf("Bit is off");
- else
- dummy_printf("its on");
- 6: f240 0000 movw r0, #0
- a: f2c0 0000 movt r0, #0
- e: f7ff bffe b.w 0 <dummy_printf>
- void original_bit5(int number) {
- int mask = 1<<5;
- if ((number & mask) == 0)
- dummy_printf("Bit is off");
- 12: f240 0000 movw r0, #0
- 16: f2c0 0000 movt r0, #0
- 1a: f7ff bffe b.w 0 <dummy_printf>
- 1e: bf00 nop
- my_bit5.o: file format elf32-littlearm
- Disassembly of section .text.my_bit5:
- 00000000 <my_bit5>:
- #include "dummy_printf.h" // get rid of stdio.h
- #include "my_bit5.h"
- void my_bit5(int number) {
- dummy_printf((number & 0x20)?"its on":"Bit is off");
- 0: f240 0200 movw r2, #0
- 4: f240 0300 movw r3, #0
- 8: f010 0f20 tst.w r0, #32
- c: f2c0 0200 movt r2, #0
- 10: f2c0 0300 movt r3, #0
- 14: bf14 ite ne
- 16: 4610 movne r0, r2
- 18: 4618 moveq r0, r3
- 1a: f7ff bffe b.w 0 <dummy_printf>
- 1e: bf00 nop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement