If it's not supported by the language, you can't use that style. How simple is that?
You'll always be using the stack. If you're using nested loops moreso. The x86 Loop instruction for example ONLY uses the cx register (well it used to, dunno if that's changed) as a counter, therefore any nesting you do would have to move from other registers or pull off the stack. There are of course other ways to write loops but I'm sure you'd be using the stack at some point for these also.
The potential is you exit out of the loop with a jump and still have crap on the stack that your program isn't necessarily expecting to be there. Perhaps your jump even skips some pushes so there's not as much on the stack as there should be. Whether this has an impact depends on a lot of factors, but typically I would assume it'd work OK, and sometimes not. You'd probably have to write some extra assembly around all your loops and labels just to ensure the stack is in the expected state at the end.
And then we also have PowerPC assembly to consider which I know nothing about.
And there are good performance reasons to restrict how you exit out of loops. You won't need to stick extra comparison instructions in nested loops you don't need to exit out of. You could actually unroll some loops if you want to. Depends on the compiler again, but it's difficult to write for all cases plus two CPU platforms.
You'll always be using the stack. If you're using nested loops moreso. The x86 Loop instruction for example ONLY uses the cx register (well it used to, dunno if that's changed) as a counter, therefore any nesting you do would have to move from other registers or pull off the stack. There are of course other ways to write loops but I'm sure you'd be using the stack at some point for these also.
The potential is you exit out of the loop with a jump and still have crap on the stack that your program isn't necessarily expecting to be there. Perhaps your jump even skips some pushes so there's not as much on the stack as there should be. Whether this has an impact depends on a lot of factors, but typically I would assume it'd work OK, and sometimes not. You'd probably have to write some extra assembly around all your loops and labels just to ensure the stack is in the expected state at the end.
And then we also have PowerPC assembly to consider which I know nothing about.
And there are good performance reasons to restrict how you exit out of loops. You won't need to stick extra comparison instructions in nested loops you don't need to exit out of. You could actually unroll some loops if you want to. Depends on the compiler again, but it's difficult to write for all cases plus two CPU platforms.