http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56439



--- Comment #6 from Robert "Finny" Merrill <rfmerrill at berkeley dot edu> 
2013-02-25 16:39:39 UTC ---

Well other than the fact that it now uses two registers (the registers are

8-bit and ints are 16-bit), no, it does the same thing



register int foo asm ("r30");



void baz();

void quux();



void bar() {

  foo = foo * 2;

  if (foo > 10)

    baz();

  else

    quux();

}





yields:



bar:

/* prologue: function */

/* frame size = 0 */

/* stack size = 0 */

.L__stack_usage = 0

        mov r24,r30

        mov r25,r31

        lsl r24

        rol r25

        mov r30,r24

        mov r31,r25

        sbiw r24,11

        brge .L4

        rjmp quux

.L4:

        rjmp baz

Reply via email to