Port-atari archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: gcc -m68060 option in kernel Makefiles
is%NetBSD.org@localhost wrote:
> > - The 64/32 integer division (DIV?.L Dn,Dr:Dq) has to be emulated.
> > - The 32*32->64 bit integer multiplication (MUL?.L) has to be emulated.
>
> Yes, and -m68060 avoids that. What I wanted to say - -m68060 does not
> *add* any instructions we use in the kernel.
src/gnu/dist/gcc4/gcc/config/m68k/m68k.c has the following code:
---
case OPT_m68020_60:
target_flags &= ~MASK_ALL_CPU_BITS;
target_flags |= (MASK_BITFIELD | MASK_68881 | MASK_68020
| MASK_68040 | MASK_68060);
return true;
case OPT_m68030:
target_flags &= ~MASK_ALL_CPU_BITS;
target_flags |= MASK_68020 | MASK_68030 | MASK_BITFIELD;
return true;
case OPT_m68040:
target_flags &= ~MASK_ALL_CPU_BITS;
target_flags |= (MASK_68020 | MASK_68881 | MASK_BITFIELD
| MASK_68040_ONLY | MASK_68040);
return true;
case OPT_m68060:
target_flags &= ~MASK_ALL_CPU_BITS;
target_flags |= (MASK_68020 | MASK_68881 | MASK_BITFIELD
| MASK_68040_ONLY | MASK_68060);
return true;
---
So there is not 060 only instruction but some 040/060 only ones?
MASK_68040_ONLY is used the following print_operand(), but
I'm not sure what it does.
---
void
print_operand (FILE *file, rtx op, int letter)
{
if (letter == '.')
:
else if (letter == '$')
{
if (TARGET_68040_ONLY)
fprintf (file, "s");
}
else if (letter == '&')
{
if (TARGET_68040_ONLY)
fprintf (file, "d");
}
else if (letter == '/')
asm_fprintf (file, "%R");
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index