src/share/vm/opto/regmask.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/regmask.hpp Fri May 8 11:59:45 2015
--- new/src/share/vm/opto/regmask.hpp Fri May 8 11:59:45 2015
*** 96,106 ****
--- 96,107 ----
// particular platform.
enum { SlotsPerLong = 2,
SlotsPerVecS = 1,
SlotsPerVecD = 2,
SlotsPerVecX = 4,
! SlotsPerVecY = 8 };
! SlotsPerVecY = 8,
+ SlotsPerVecZ = 16 };
// A constructor only used by the ADLC output. All mask fields are filled
// in directly. Calls to this look something like RM(1,2,3,4);
RegMask(
# define BODY(I) int a##I,
*** 297,313 ****
--- 298,314 ----
static const RegMask Empty; // Common empty mask
static bool can_represent(OptoReg::Name reg) {
// NOTE: -1 in computation reflects the usage of the last
// bit of the regmask as an infinite stack flag and
! // -7 is to keep mask aligned for largest value (VecY).
! // -7 is to keep mask aligned for largest value (VecZ).
return (int)reg < (int)(CHUNK_SIZE-1);
}
static bool can_represent_arg(OptoReg::Name reg) {
! // NOTE: -SlotsPerVecY in computation reflects the need
! // to keep mask aligned for largest value (VecY).
! return (int)reg < (int)(CHUNK_SIZE-SlotsPerVecY);
! // NOTE: -SlotsPerVecZ in computation reflects the need
! // to keep mask aligned for largest value (VecZ).
! return (int)reg < (int)(CHUNK_SIZE-SlotsPerVecZ);
}
};
// Do not use this constant directly in client code!
#undef RM_SIZE
src/share/vm/opto/regmask.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File