Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 808c4d87355f3626d5829df45f62745d893f236c..77cb75dbf243586beab9b83f9d5a142cced922e8 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -4630,14 +4630,12 @@ void LCodeGen::DoToFastProperties(LToFastProperties* instr) { |
void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { |
Label materialized; |
// Registers will be used as follows: |
- // rdi = JS function. |
// rcx = literals array. |
// rbx = regexp literal. |
// rax = regexp literal clone. |
- __ movq(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ movq(rcx, FieldOperand(rdi, JSFunction::kLiteralsOffset)); |
- int literal_offset = FixedArray::kHeaderSize + |
- instr->hydrogen()->literal_index() * kPointerSize; |
+ int literal_offset = |
+ FixedArray::OffsetOfElementAt(instr->hydrogen()->literal_index()); |
+ __ LoadHeapObject(rcx, instr->hydrogen()->literals()); |
__ movq(rbx, FieldOperand(rcx, literal_offset)); |
__ CompareRoot(rbx, Heap::kUndefinedValueRootIndex); |
__ j(not_equal, &materialized, Label::kNear); |