13 select case( env.clopt.backend )
19 assert( env.clopt.backend = FB_BACKEND_GAS )
30 function vregDump(
byval v
as IRVREG
ptr )
as string
38 static as zstring ptr vregtypes(IR_VREGTYPE_IMM
to IR_VREGTYPE_OFS) = _
40 @
"imm", @
"var", @
"idx", @
"ptr", @
"reg", @
"ofs" _
44 s +=
"[" +
hex( v, 8 ) +
"] "
47 s += *vregtypes(v->typ)
52 if( typeGetClass( v->dtype ) = FB_DATACLASS_FPOINT )
then
53 s +=
str( v->value.f )
55 s +=
str( v->value.i )
59 if( env.clopt.backend = FB_BACKEND_GAS )
then
61 if(
len( regname ) > 0 )
then
62 s +=
" " +
ucase( regname )
64 s +=
" " +
str( v->reg )
68 s +=
" " +
str( v->reg )
72 if( v->typ <> IR_VREGTYPE_REG )
then
74 if( (env.clopt.backend = FB_BACKEND_GAS)
and (v->sym <> NULL) )
then
75 s +=
" """ + *symbGetName( v->sym ) +
""" [" + *
symbGetMangledName( v->sym ) +
str( v->ofs ) +
"]"
77 s +=
" ofs=" +
str( v->ofs )
81 s +=
" mult=" +
str( v->mult )
85 s +=
" " +
typeDump( v->dtype, v->subtype )
87 if( v->typ <> IR_VREGTYPE_REG )
then
89 s +=
" vidx=<" +
vregDump( v->vidx ) +
">"
93 if( ISLONGINT( v->dtype ) )
then
94 s +=
" vaux=<" +
vregDump( v->vaux ) +
">"