-->

Previous | Table of Contents | Next

Page 196

WARNING
The requisite libraries are not part of GNU CC. Normally, the facilities of the machine's usual C compiler are used, but this can't be done directly in cross-compilation. You must make your own arrangements to provide suitable library functions for cross-compilation.

_mhard_float Generate output containing floating point instructions. This is the default if you use the unmodified sources. _mfp64 Assume that the FR bit in the status word is on, and that there are 32 64-bit floating-point registers, instead of 32 32-bit floating-point registers. You must also specify the _mcpu=r4000 and _mips3 switches. _mfp32 Assume that there are 32 32-bit floating-point registers. This is the default. _mabicalls Emit (or do not emit) the .abicalls, .cpload, and .cprestore pseudo operations that some _mno_abicalls System V.4 ports use for position-independent code. _mhalf_pic The _mhalf_pic switch says to put pointers to extern references into the data section and load _mno_half_pic them up, rather than put the references in the text section. This option does not work at present. _Gnum Put global and static items less than or equal to num bytes into the small data or bss sections instead of the normal data or bss section. This allows the assembler to emit one-word memory reference instructions based on the global pointer (gp or $28), instead of the normal two words used. By default, num is 8 when the MIPS assembler is used, and 0 when the GNU assembler is used. The _Gnum switch is also passed to the assembler and linker. All modules should be compiled with the same _Gnum value. _nocpp Tell the MIPS assembler to not run its preprocessor over user assembler files (with an .s suffix) when assembling them.

These _m options are defined for the Intel 80386 family of computers:

_m486, _mno_486 Control whether or not code is optimized for a 486 instead of a 386. Code generated for a 486 will run on a 386 and vice versa.
_msoft_float Generate output containing library calls for floating point.

WARNING
The requisite libraries are not part of GNU CC. Normally, the facilities of the machine's usual C compiler are used, but this can't be done directly in cross-compilation. You must make your own arrangements to provide suitable library functions for cross-compilation.

On machines where a function returns floating point results in the 80387 register stack, some floating-point opcodes may be emitted even if _msoft-float is used.
_mno-fp-ret-in-387 Do not use the FPU registers for return values of functions.
The usual calling convention has functions return values of types float and double in an FPU register, even if there is no FPU. The idea is that the operating system should emulate an FPU.
The option _mno-fp-ret-in-387 causes such values to be returned in ordinary CPU registers instead.

These _m options are defined for the HPPA family of computers:

_mpa-risc-1-0 Generate code for a PA 1.0 processor.
_mpa-risc-1-1 Generate code for a PA 1.1 processor.

Page 197

_mkernel Generate code which is suitable for use in kernels. Specifically, avoid add instructions in which one of the arguments is the DP register; generate addil instructions instead. This avoids a rather serious bug in the HP-UX linker.
_mshared-libs Generate code that can be linked against HP-UX shared libraries. This option is not fully functioning yet, and is not on by default for any PA target. Using this option can cause incorrect code to be generated by the compiler.
_mno-shared-libs Don't generate code that will be linked against shared libraries. This is the default for all PA targets.
_mlong-calls Generate code which allows calls to functions greater than 256K away from the caller when the caller and callee are in the same source file. Do not turn this option on unless code refuses to link with branch out of range errors from the linker.
_mdisable-fpregs Prevent floating-point registers from being used in any manner. This is necessary for compiling kernels that perform lazy context switching of floating-point registers. If you use this option and attempt to perform floating-point operations, the compiler will abort.
_mdisable-indexing Prevent the compiler from using indexing address modes. This avoids some rather obscure problems when compiling MIG-generated code under MACH.
_mtrailing-colon Add a colon to the end of label definitions (for ELF assemblers).

These _m options are defined for the Intel 80960 family of computers:

_mcpu-type Assume the defaults for the machine type cpu-type for instruction and addressing-mode availability and alignment. The default cpu-type is kb; other choices are ka, mc, ca, cf, sa, and sb.
_mnumerics The _mnumerics option indicates that the processor does support floating-point instructions.
_msoft_float The _msoft_float option indicates that floating-point support should not be assumed.
_mleaf_procedures Do (or do not) attempt to alter leaf procedures to be callable with the bal instruction as well as
_mno_leaf_procedures call. This will result in more efficient code for explicit calls when the bal instruction can be substituted by the assembler or linker, but less efficient code in other cases, such as calls via function pointers, or using a linker that doesn't support this optimization.
_mtail_call Do (or do not) make additional attempts (beyond those of the machine-independent portions
_mno_tail_call of the compiler) to optimize tail-recursive calls into branches. You may not want to do this because the detection of cases where this is not valid is not totally complete. The default is
_mno_tail_call.
_mcomplex_addr Assume (or do not assume) that the use of a complex addressing mode is a win on this imple-
_mno_complex_addr mentation of the i960. Complex addressing modes may not be worthwhile on the K-series, but they definitely are on the C-series. The default is currently _mcomplex_addr for all processors except the CB and CC.
_mcode_align Align code to 8-byte boundaries for faster fetching (or don't bother). Currently turned on by
_mno_code_align default for C-series implementations only.
_mic_compat Enable compatibility with iC960 v2.0 or v3.0.
_ mic2.0_compat
_mic3.0_compat
_masm_compat
Enable compatibility with the iC960 assembler.
_mintel_asm
_mstrict_align
Do not permit (do permit) unaligned accesses.
_mno_strict_align _mold_align Enable structure-alignment compatibility with Intel's gcc release version 1.3 (based on gcc 1.37). Currently this is buggy in that #pragma align 1 is always assumed as well, and cannot be turned off.

Previous | Table of Contents | Next