484 idealreg2spillmask[Op_RegF]->OR(C->FIRST_STACK_mask());
485 *idealreg2spillmask[Op_RegD] = *idealreg2regmask[Op_RegD];
486 idealreg2spillmask[Op_RegD]->OR(C->FIRST_STACK_mask());
487 *idealreg2spillmask[Op_RegP] = *idealreg2regmask[Op_RegP];
488 idealreg2spillmask[Op_RegP]->OR(C->FIRST_STACK_mask());
489
490 if (UseFPUForSpilling) {
491 // This mask logic assumes that the spill operations are
492 // symmetric and that the registers involved are the same size.
493 // On sparc for instance we may have to use 64 bit moves will
494 // kill 2 registers when used with F0-F31.
495 idealreg2spillmask[Op_RegI]->OR(*idealreg2regmask[Op_RegF]);
496 idealreg2spillmask[Op_RegF]->OR(*idealreg2regmask[Op_RegI]);
497 #ifdef _LP64
498 idealreg2spillmask[Op_RegN]->OR(*idealreg2regmask[Op_RegF]);
499 idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]);
500 idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]);
501 idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegD]);
502 #else
503 idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegF]);
504 #endif
505 }
506
507 // Make up debug masks. Any spill slot plus callee-save registers.
508 // Caller-save registers are assumed to be trashable by the various
509 // inline-cache fixup routines.
510 *idealreg2debugmask [Op_RegN]= *idealreg2spillmask[Op_RegN];
511 *idealreg2debugmask [Op_RegI]= *idealreg2spillmask[Op_RegI];
512 *idealreg2debugmask [Op_RegL]= *idealreg2spillmask[Op_RegL];
513 *idealreg2debugmask [Op_RegF]= *idealreg2spillmask[Op_RegF];
514 *idealreg2debugmask [Op_RegD]= *idealreg2spillmask[Op_RegD];
515 *idealreg2debugmask [Op_RegP]= *idealreg2spillmask[Op_RegP];
516
517 *idealreg2mhdebugmask[Op_RegN]= *idealreg2spillmask[Op_RegN];
518 *idealreg2mhdebugmask[Op_RegI]= *idealreg2spillmask[Op_RegI];
519 *idealreg2mhdebugmask[Op_RegL]= *idealreg2spillmask[Op_RegL];
520 *idealreg2mhdebugmask[Op_RegF]= *idealreg2spillmask[Op_RegF];
521 *idealreg2mhdebugmask[Op_RegD]= *idealreg2spillmask[Op_RegD];
522 *idealreg2mhdebugmask[Op_RegP]= *idealreg2spillmask[Op_RegP];
523
|
484 idealreg2spillmask[Op_RegF]->OR(C->FIRST_STACK_mask());
485 *idealreg2spillmask[Op_RegD] = *idealreg2regmask[Op_RegD];
486 idealreg2spillmask[Op_RegD]->OR(C->FIRST_STACK_mask());
487 *idealreg2spillmask[Op_RegP] = *idealreg2regmask[Op_RegP];
488 idealreg2spillmask[Op_RegP]->OR(C->FIRST_STACK_mask());
489
490 if (UseFPUForSpilling) {
491 // This mask logic assumes that the spill operations are
492 // symmetric and that the registers involved are the same size.
493 // On sparc for instance we may have to use 64 bit moves will
494 // kill 2 registers when used with F0-F31.
495 idealreg2spillmask[Op_RegI]->OR(*idealreg2regmask[Op_RegF]);
496 idealreg2spillmask[Op_RegF]->OR(*idealreg2regmask[Op_RegI]);
497 #ifdef _LP64
498 idealreg2spillmask[Op_RegN]->OR(*idealreg2regmask[Op_RegF]);
499 idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]);
500 idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]);
501 idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegD]);
502 #else
503 idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegF]);
504 #ifdef ARM
505 // ARM has support for moving 64bit values between a pair of
506 // integer registers and a double register
507 idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]);
508 idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]);
509 #endif
510 #endif
511 }
512
513 // Make up debug masks. Any spill slot plus callee-save registers.
514 // Caller-save registers are assumed to be trashable by the various
515 // inline-cache fixup routines.
516 *idealreg2debugmask [Op_RegN]= *idealreg2spillmask[Op_RegN];
517 *idealreg2debugmask [Op_RegI]= *idealreg2spillmask[Op_RegI];
518 *idealreg2debugmask [Op_RegL]= *idealreg2spillmask[Op_RegL];
519 *idealreg2debugmask [Op_RegF]= *idealreg2spillmask[Op_RegF];
520 *idealreg2debugmask [Op_RegD]= *idealreg2spillmask[Op_RegD];
521 *idealreg2debugmask [Op_RegP]= *idealreg2spillmask[Op_RegP];
522
523 *idealreg2mhdebugmask[Op_RegN]= *idealreg2spillmask[Op_RegN];
524 *idealreg2mhdebugmask[Op_RegI]= *idealreg2spillmask[Op_RegI];
525 *idealreg2mhdebugmask[Op_RegL]= *idealreg2spillmask[Op_RegL];
526 *idealreg2mhdebugmask[Op_RegF]= *idealreg2spillmask[Op_RegF];
527 *idealreg2mhdebugmask[Op_RegD]= *idealreg2spillmask[Op_RegD];
528 *idealreg2mhdebugmask[Op_RegP]= *idealreg2spillmask[Op_RegP];
529
|