S390: Guard RISBG usage with facility check

A use of risbg instruction is not guarded by the corresponding
GENERAL_INSTR_EXT facility check.  This will result in an illegal
instruction when running on hardware without that facility installed
(i.e. z9).

R=jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1848533006

Cr-Commit-Position: refs/heads/master@{#35206}
This commit is contained in:
joransiu 2016-04-01 06:27:39 -07:00 committed by Commit bot
parent 3283d6d350
commit c279138010

View File

@ -4229,7 +4229,8 @@ void LCodeGen::DoStoreKeyedFixedArray(LStoreKeyed* instr) {
if (hinstr->key()->representation().IsSmi()) {
__ SmiToPtrArrayOffset(scratch, key);
} else {
if (instr->hydrogen()->IsDehoisted()) {
if (instr->hydrogen()->IsDehoisted() ||
!CpuFeatures::IsSupported(GENERAL_INSTR_EXT)) {
#if V8_TARGET_ARCH_S390X
// If array access is dehoisted, the key, being an int32, can contain
// a negative value, as needs to be sign-extended to 64-bit for