home | help
MC(1)			     General Commands Manual			   MC(1)

NAME
     6m

SYNOPSIS
     6m -[?hioSG9d] [file...]

DESCRIPTION
     The  ?m  compiler	family compiles Myrddin source into object files for the
     corresponding architecture. Each architecture gets its own compler.  Unless
     otherwise	specified,  if the input file is named filename.myr then the the
     object file that is generated will be named filename.o.

     Any text between the first  '+'  in  the  file  name  and	the  suffix  are
     stripped.	This functionality is used to specify system tags for tools like
     'mbld'.

     If the filename does not end with the suffix .myr then the object suffix .o
     will simply be appended to it.

     The following architectures are currently supported:

     6m     x86-64

     The compiler options are:

     -d [flTriu]
	    Print debugging dumps. Additional options may be given to give  more
	    debugging information for specific intermediate states of the compi-
	    lation.

     -h, -?
	    Print a summary of the available options.

     -I path
	    Add  'path'  to the search path for unquoted use statments. This op-
	    tion does not affect the search path for local usefiles,  which  are
	    always  searched  relative	to  the  directory containing the output
	    file. Without any options, the  search  path  defaults  to	/usr/in-
	    clude/myr.

     -o output-file
	    Specify  that the generated code should be placed in output-file in-
	    stead of the default location.

     -S     Generate assembly code along with the object file.

     -G     Generate assembly in the Gnu As syntax.

     -O out
	    Output code to output path 'out'

     -T     Compile in test mode.  This  implies  that	pkglocal  functions  are
	    available.

     -9     Generate assembly in the Plan 9 syntax.

EXAMPLE
	 6m foo.myr
	 6m bar.myr
	 ld -o foobar foo.o bar.o

FILES
     The  source  code	for  this  compiler  is  available from git://git.eigen-
     state.org/git/ori/mc.git

SEE ALSO
     muse(1) ld(1) as(1)

BUGS
     The language is not yet complete, and the compilers often omit useful  con-
     structs in spite of their desirability.

     There  are virtually no optimizations done, and the generated source is of-
     ten very poorly performing.

     The current calling convention is stack-based and not register-based,  even
     on architectures where it should be register-based.

     The calling convention is not compatible with C.

									   MC(1)

home | help