Chromium Code Reviews| Index: src/x64/lithium-codegen-x64.cc |
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
| index c242874c52b61b31e2c6cc20d686dbcb27911f01..39fb0f233828850ef52aa4c1da92eaf09e994761 100644 |
| --- a/src/x64/lithium-codegen-x64.cc |
| +++ b/src/x64/lithium-codegen-x64.cc |
| @@ -2350,6 +2350,9 @@ void LCodeGen::DoLoadKeyedSpecializedArrayElement( |
| XMMRegister result(ToDoubleRegister(instr->result())); |
| __ movss(result, Operand(external_pointer, key, times_4, 0)); |
| __ cvtss2sd(result, result); |
| + } else if (array_type == kExternalDoubleArray) { |
| + __ movsd(ToDoubleRegister(instr->result()), |
| + Operand(external_pointer, key, times_8, 0)); |
|
danno
2011/04/18 16:36:28
remove extra space before key
Jakob Kummerow
2011/04/20 15:01:13
Done.
|
| } else { |
| Register result(ToRegister(instr->result())); |
| switch (array_type) { |
| @@ -2378,6 +2381,7 @@ void LCodeGen::DoLoadKeyedSpecializedArrayElement( |
| DeoptimizeIf(negative, instr->environment()); |
| break; |
| case kExternalFloatArray: |
| + case kExternalDoubleArray: |
| UNREACHABLE(); |
| break; |
| } |
| @@ -3037,6 +3041,9 @@ void LCodeGen::DoStoreKeyedSpecializedArrayElement( |
| XMMRegister value(ToDoubleRegister(instr->value())); |
| __ cvtsd2ss(value, value); |
| __ movss(Operand(external_pointer, key, times_4, 0), value); |
| + } else if (array_type == kExternalDoubleArray) { |
| + __ movsd(Operand(external_pointer, key, times_8, 0), |
|
danno
2011/04/18 16:36:28
remove extra space before key
Jakob Kummerow
2011/04/20 15:01:13
Done.
|
| + ToDoubleRegister(instr->value())); |
| } else { |
| Register value(ToRegister(instr->value())); |
| switch (array_type) { |
| @@ -3064,6 +3071,7 @@ void LCodeGen::DoStoreKeyedSpecializedArrayElement( |
| __ movl(Operand(external_pointer, key, times_4, 0), value); |
| break; |
| case kExternalFloatArray: |
| + case kExternalDoubleArray: |
| UNREACHABLE(); |
| break; |
| } |