Reviewers: jochen, ulan,
Description:
A64: Tidy up a few TODOs.
[email protected], [email protected]
Please review this at https://codereview.chromium.org/195363003/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+12, -12 lines):
M src/a64/assembler-a64.h
M src/a64/macro-assembler-a64.h
M src/a64/macro-assembler-a64.cc
Index: src/a64/assembler-a64.h
diff --git a/src/a64/assembler-a64.h b/src/a64/assembler-a64.h
index
3087e886f12c6cded30a652efa6083e1523e9735..999b01ad4ff05ad2a035510df3be75a37992115f
100644
--- a/src/a64/assembler-a64.h
+++ b/src/a64/assembler-a64.h
@@ -846,9 +846,6 @@ class Assembler : public AssemblerBase {
return SizeOfCodeGeneratedSince(label) / kInstructionSize;
}
- // TODO(all): Initialize these constants related with code patching.
- // TODO(all): Set to -1 to hopefully crash if mistakenly used.
-
// Number of instructions generated for the return sequence in
// FullCodeGenerator::EmitReturnSequence.
static const int kJSRetSequenceInstructions = 7;
Index: src/a64/macro-assembler-a64.cc
diff --git a/src/a64/macro-assembler-a64.cc b/src/a64/macro-assembler-a64.cc
index
aa61f5816eab754f1f7ee9a7d72f569f4d5e9350..4b6b8eb499479eaf7f6600bdbc5ac67ab80445b0
100644
--- a/src/a64/macro-assembler-a64.cc
+++ b/src/a64/macro-assembler-a64.cc
@@ -1758,11 +1758,13 @@ void MacroAssembler::GetBuiltinFunction(Register
target,
}
-void MacroAssembler::GetBuiltinEntry(Register target, Builtins::JavaScript
id) {
- ASSERT(!target.is(x1));
- GetBuiltinFunction(x1, id);
+void MacroAssembler::GetBuiltinEntry(Register target,
+ Register function,
+ Builtins::JavaScript id) {
+ ASSERT(!AreAliased(target, function));
+ GetBuiltinFunction(function, id);
// Load the code entry point from the builtins object.
- Ldr(target, FieldMemOperand(x1, JSFunction::kCodeEntryOffset));
+ Ldr(target, FieldMemOperand(function, JSFunction::kCodeEntryOffset));
}
@@ -1773,7 +1775,8 @@ void
MacroAssembler::InvokeBuiltin(Builtins::JavaScript id,
// You can't call a builtin without a valid frame.
ASSERT(flag == JUMP_FUNCTION || has_frame());
- GetBuiltinEntry(x2, id);
+ // Get the builtin entry in x2 and setup the function object in x1.
+ GetBuiltinEntry(x2, x1, id);
if (flag == CALL_FUNCTION) {
call_wrapper.BeforeCall(CallSize(x2));
Call(x2);
Index: src/a64/macro-assembler-a64.h
diff --git a/src/a64/macro-assembler-a64.h b/src/a64/macro-assembler-a64.h
index
f5fa14f7dac1dd3483a981fb631a94bcc5f1c440..a9cf18909036c330d5f35dfac4c90c33783a83e7
100644
--- a/src/a64/macro-assembler-a64.h
+++ b/src/a64/macro-assembler-a64.h
@@ -1047,7 +1047,6 @@ class MacroAssembler : public Assembler {
CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
}
- // TODO(all): Why does this variant save FP regs unconditionally?
void CallRuntimeSaveDoubles(Runtime::FunctionId id) {
const Runtime::Function* function = Runtime::FunctionForId(id);
CallRuntime(function, function->nargs, kSaveFPRegs);
@@ -1110,9 +1109,10 @@ class MacroAssembler : public Assembler {
const CallWrapper& call_wrapper = NullCallWrapper());
// Store the code object for the given builtin in the target register and
- // setup the function in x1.
- // TODO(all): Can we use another register than x1?
- void GetBuiltinEntry(Register target, Builtins::JavaScript id);
+ // setup the function in the function register.
+ void GetBuiltinEntry(Register target,
+ Register function,
+ Builtins::JavaScript id);
// Store the function for the given builtin in the target register.
void GetBuiltinFunction(Register target, Builtins::JavaScript id);
--
--
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/d/optout.