static bool dirFuncBSS( directive_t *dir, dir_table_enum parm ) //************************************************************* { if( !dirHasOperand( dir ) ) return( dirFuncSwitchSection( dir, parm ) ); return( dirFuncStorageAlloc( dir, parm ) ); // ".bss tag, bytes" }
static bool dirFuncErr( directive_t *dir, dir_table_enum parm ) //************************************************************* { char *str; parm = parm; if( dirHasOperand( dir ) ) { assert( dir->num_operands == 1 ); assert( dir->operand_list->type == DIROP_LINE ); str = STRING_CONTENT( dir->operand_list ); if( *str ) { Error( GET_STRING, str ); } } return( FALSE ); // so that yyparse will terminate }
static bool dirFuncSetOption( directive_t *dir, dir_table_enum parm ) //******************************************************************* { char *str; /* unused parameters */ (void)parm; if( dirHasOperand( dir ) ) { assert( dir->num_operands == 1 ); assert( dir->operand_list->type == DIROP_LINE ); str = STRING_CONTENT( dir->operand_list ); if( optionString( str, "at" ) ) { _DirSet( AT ); } else if( optionString( str, "noat" ) ) { _DirUnSet( AT ); } else if( optionString( str, "macro" ) ) { _DirSet( MACRO ); } else if( optionString( str, "nomacro" ) ) { _DirUnSet( MACRO ); } else if( optionString( str, "reorder" ) ) { _DirSet( REORDER ); } else if( optionString( str, "noreorder" ) ) { _DirUnSet( REORDER ); } else if( optionString( str, "volatile" ) ) { // ignore this for now // _DirSet( VOLATILE ); } else if( optionString( str, "novolatile" ) ) { // ignore this for now // _DirUnSet( VOLATILE ); } else if( optionString( str, "move" ) ) { // ignore this for now // _DirSet( MOVE ); } else if( optionString( str, "nomove" ) ) { // ignore this for now // _DirUnSet( MOVE ); } else { Error( IMPROPER_SET_DIRECTIVE, str ); } } return( true ); }