Instructions That Cannot be Called Twice Consecutively

Instructions That Cannot be Called Twice Consecutively

Some instructions and certain combinations of instructions cannot be called consecutively.

Consecutive Calls to else, endif, ret, and endloop

You cannot call else, endif, ret, and endloop consecutively.
Example:

ifb     b0
  nop
  nop
  ifb     b1
    nop
  else
    nop
    nop
  endif // Error
else
  nop
  nop
  call    subroutine // Error because 'ret' is called at the end of the calling subroutine
endif

Consecutive Calls to mova

The mova instruction cannot be called twice consecutively.

Calling jpc/jpb immediately before an else, endif, ret, or endloop

You cannot call jpc or jpb immediately before an else, endif, ret, or endloop.

Example:

ifb     b0
  nop
  nop
  jumplabel:
  nop
  nop
  jpb     b1, true, jumplabel // jpb cannot be called immediately before an endif
endif

Calling breakc immediately before an endloop

You cannot call breakc immediately before endloop.

Example:

loop    i0
  nop
  breakc  1, 1, 1 // You cannot call breakc immediately before endloop
endloop

Revision History

2011/12/20
Initial version.

CONFIDENTIAL