According to MSDN, _db and _da are legit srcmods, identical to _dz and _dw.
Basically, it's to match rgba syntax, instead of xyzw.
--- a/mojoshader_assembler.c Wed Apr 18 00:19:32 2012 -0400
+++ b/mojoshader_assembler.c Wed Apr 18 00:21:58 2012 -0400
@@ -678,8 +678,12 @@
set_source_mod(ctx, negate, SRCMOD_X2, SRCMOD_X2NEGATE, &srcmod);
else if (check_token_segment(ctx, "_dz"))
set_source_mod(ctx, negate, SRCMOD_DZ, SRCMOD_NONE, &srcmod);
+ else if (check_token_segment(ctx, "_db"))
+ set_source_mod(ctx, negate, SRCMOD_DZ, SRCMOD_NONE, &srcmod);
else if (check_token_segment(ctx, "_dw"))
set_source_mod(ctx, negate, SRCMOD_DW, SRCMOD_NONE, &srcmod);
+ else if (check_token_segment(ctx, "_da"))
+ set_source_mod(ctx, negate, SRCMOD_DW, SRCMOD_NONE, &srcmod);
else if (check_token_segment(ctx, "_abs"))
set_source_mod(ctx, negate, SRCMOD_ABS, SRCMOD_ABSNEGATE, &srcmod);
else