Reviewers: Benedikt Meurer,
Description:
Swap cp and pp registers on Arm such for work on OOL Constant Pool.
Please review this at https://codereview.chromium.org/94723002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+11, -11 lines):
M src/arm/code-stubs-arm.cc
M src/arm/frames-arm.h
M src/arm/macro-assembler-arm.h
Index: src/arm/code-stubs-arm.cc
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
index
bfe6da0ef44ce71a30d7706df141796e7527a050..696dc76d3cda57598372f07846dc68598eb36ec8
100644
--- a/src/arm/code-stubs-arm.cc
+++ b/src/arm/code-stubs-arm.cc
@@ -2584,7 +2584,7 @@ void
ArgumentsAccessStub::GenerateNewNonStrictFast(MacroAssembler* masm) {
const int kAliasedOffset =
Context::SlotOffset(Context::ALIASED_ARGUMENTS_BOILERPLATE_INDEX);
- __ ldr(r4, MemOperand(r8,
Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX)));
+ __ ldr(r4, MemOperand(cp,
Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX)));
__ ldr(r4, FieldMemOperand(r4, GlobalObject::kNativeContextOffset));
__ cmp(r1, Operand::Zero());
__ ldr(r4, MemOperand(r4, kNormalOffset), eq);
@@ -2635,7 +2635,7 @@ void
ArgumentsAccessStub::GenerateNewNonStrictFast(MacroAssembler* masm) {
__ str(r6, FieldMemOperand(r4, FixedArray::kMapOffset));
__ add(r6, r1, Operand(Smi::FromInt(2)));
__ str(r6, FieldMemOperand(r4, FixedArray::kLengthOffset));
- __ str(r8, FieldMemOperand(r4, FixedArray::kHeaderSize + 0 *
kPointerSize));
+ __ str(cp, FieldMemOperand(r4, FixedArray::kHeaderSize + 0 *
kPointerSize));
__ add(r6, r4, Operand(r1, LSL, 1));
__ add(r6, r6, Operand(kParameterMapHeaderSize));
__ str(r6, FieldMemOperand(r4, FixedArray::kHeaderSize + 1 *
kPointerSize));
@@ -3029,7 +3029,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
// For arguments 4 and 3 get string length, calculate start of string
data and
// calculate the shift of the index (0 for ASCII and 1 for two byte).
- __ add(r8, subject, Operand(SeqString::kHeaderSize - kHeapObjectTag));
+ __ add(r7, subject, Operand(SeqString::kHeaderSize - kHeapObjectTag));
__ eor(r3, r3, Operand(1));
// Load the length from the original subject string from the previous
stack
// frame. Therefore we have to use fp, which points exactly to two
pointer
@@ -3040,12 +3040,12 @@ void RegExpExecStub::Generate(MacroAssembler* masm)
{
// Argument 4, r3: End of string data
// Argument 3, r2: Start of string data
// Prepare start and end index of the input.
- __ add(r9, r8, Operand(r9, LSL, r3));
+ __ add(r9, r7, Operand(r9, LSL, r3));
__ add(r2, r9, Operand(r1, LSL, r3));
- __ ldr(r8, FieldMemOperand(subject, String::kLengthOffset));
- __ SmiUntag(r8);
- __ add(r3, r9, Operand(r8, LSL, r3));
+ __ ldr(r7, FieldMemOperand(subject, String::kLengthOffset));
+ __ SmiUntag(r7);
+ __ add(r3, r9, Operand(r7, LSL, r3));
// Argument 2 (r1): Previous index.
// Already there
Index: src/arm/frames-arm.h
diff --git a/src/arm/frames-arm.h b/src/arm/frames-arm.h
index
6c9ec4ab5e4f1fdc5104f5f627002d049bb2c88d..e6ecda1fb533b54da7cd29da32e6819dca2181ec
100644
--- a/src/arm/frames-arm.h
+++ b/src/arm/frames-arm.h
@@ -64,8 +64,8 @@ const RegList kCalleeSaved =
1 << 4 | // r4 v1
1 << 5 | // r5 v2
1 << 6 | // r6 v3
- 1 << 7 | // r7 v4 (pp in JavaScript code)
- 1 << 8 | // r8 v5 (cp in JavaScript code)
+ 1 << 7 | // r7 v4 (cp in JavaScript code)
+ 1 << 8 | // r8 v5 (pp in JavaScript code)
kR9Available << 9 | // r9 v6
1 << 10 | // r10 v7
1 << 11; // r11 v8 (fp in JavaScript code)
Index: src/arm/macro-assembler-arm.h
diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h
index
5e20eecfb633dfab14a59c7b2679d0dc793034bc..a53990e2de4850121eadf691c6a4055de6d8664c
100644
--- a/src/arm/macro-assembler-arm.h
+++ b/src/arm/macro-assembler-arm.h
@@ -45,8 +45,8 @@ inline MemOperand FieldMemOperand(Register object, int
offset) {
// Give alias names to registers
-const Register pp = { kRegister_r7_Code }; // Constant pool pointer.
-const Register cp = { kRegister_r8_Code }; // JavaScript context pointer.
+const Register cp = { kRegister_r7_Code }; // JavaScript context pointer.
+const Register pp = { kRegister_r8_Code }; // Constant pool pointer.
const Register kRootRegister = { kRegister_r10_Code }; // Roots array
pointer.
// Flags used for AllocateHeapNumber
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.