Mode Examples

Explicit Mode

When IAS encounters the following code in explicit mode, it registers a dependency violation error.

The directive .default causes the mode to switch to the default initial mode defined in the command line; which in this case is automatic.

.explicit
(p1)mov r1 = r4
;;;
(p2)mov r6 = r2

ldfps f4,f5 = [r4]
fabs f4 = f7  ; WAW error on f4
          ; IAS inserts a stop when the mode switches
.default
add r5 = 0, r7

Automatic Mode

In automatic mode, using similar code to the previous example, IAS ignores existing stops and inserts stops between dependent instructions, as in the following example:

.auto
(p1)mov r1 = r4
;;;
; IAS ignores this stop
(p2)mov r6 = r2
ldfps f4,f5 = [r4]
; IAS inserts a stop to avoid WAW error on f4
fabs f4 = f7

Initial Default is Automatic Mode

In the following example, the default mode is automatic:

(p1)mov r1 = r4
; IAS inserts a stop here
(p2)mov r1 = r2
{ ; IAS inserts a stop here
; IAS treats this code as explicit
ldfps f4,f5 = [r4]
fabs f4 = f7 // write-after-write error
}