The cross-compiler distributed with a toolchain is in fact a variant of GCC, with the backend configured to build object files that contain machine code for a specific architecture. The output of the compilation are object files containing symbols that can only be interpreted by the specific target. arm-none-eabi-gcc is able to compile C code into machine instructions and CPU optimizations for several different targets.
The GCC backend for the ARM architecture supports a number of machine-specific options, to select the correct instruction set for the CPU, and the machine-specific optimization parameters.
The following table lists some of the ARM-specific machine options available on the GCC backend as -m flags: