AsmPrimaryExp:
IntegerLiteral
FloatLiteral
__LOCAL_SIZE
$
Register
Register64
DotIdentifier
This grammar says nothing about segment overrides. (i.e. ":" being a valid token in a primary expression.)
According to the spec this line in druntime's thread.d is invalid:
asm { naked; mov EAX, FS:4; ret; }