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
} |