Reduced code size by using shorter instruction encoding when possible.
Added a --help option to the shell sample and to the d8 shell.
Added visual studio project files for building the ARM simulator.
Fixed a number of ARM simulator issues.
Fixed bug in out-of-memory handling on ARM.
Implemented shell support for passing arguments to a script from the command line.
Fixed bug in date code that made certain date functions return -0 instead of 0 for dates before the epoch.
Restricted applications of eval so it can only be used in the context of the associated global object.
Treat byte-order marks as whitespace characters.
git-svn-id: http://v8.googlecode.com/svn/trunk@768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/macro-assembler-ia32.cc b/src/macro-assembler-ia32.cc
index 72808de..fd7e4d9 100644
--- a/src/macro-assembler-ia32.cc
+++ b/src/macro-assembler-ia32.cc
@@ -293,7 +293,7 @@
if (x.is_zero()) {
xor_(dst, Operand(dst)); // shorter than mov
} else {
- mov(Operand(dst), x);
+ mov(dst, x);
}
}
@@ -695,7 +695,7 @@
if (num_arguments > 0) {
add(Operand(esp), Immediate(num_arguments * kPointerSize));
}
- mov(Operand(eax), Immediate(Factory::undefined_value()));
+ mov(eax, Immediate(Factory::undefined_value()));
}
@@ -726,14 +726,14 @@
// arguments passed in because it is constant. At some point we
// should remove this need and make the runtime routine entry code
// smarter.
- mov(Operand(eax), Immediate(num_arguments));
+ Set(eax, Immediate(num_arguments));
JumpToBuiltin(ext);
}
void MacroAssembler::JumpToBuiltin(const ExternalReference& ext) {
// Set the entry point and jump to the C entry runtime stub.
- mov(Operand(ebx), Immediate(ext));
+ mov(ebx, Immediate(ext));
CEntryStub ces;
jmp(ces.GetCode(), RelocInfo::CODE_TARGET);
}
@@ -787,7 +787,7 @@
Handle<Code> adaptor =
Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline));
if (!code_constant.is_null()) {
- mov(Operand(edx), Immediate(code_constant));
+ mov(edx, Immediate(code_constant));
add(Operand(edx), Immediate(Code::kHeaderSize - kHeapObjectTag));
} else if (!code_operand.is_reg(edx)) {
mov(edx, code_operand);
@@ -873,7 +873,8 @@
if (!resolved) {
uint32_t flags =
Bootstrapper::FixupFlagsArgumentsCount::encode(argc) |
- Bootstrapper::FixupFlagsIsPCRelative::encode(true);
+ Bootstrapper::FixupFlagsIsPCRelative::encode(true) |
+ Bootstrapper::FixupFlagsUseCodeObject::encode(false);
Unresolved entry = { pc_offset() - sizeof(int32_t), flags, name };
unresolved_.Add(entry);
}
@@ -891,7 +892,8 @@
if (!resolved) {
uint32_t flags =
Bootstrapper::FixupFlagsArgumentsCount::encode(argc) |
- Bootstrapper::FixupFlagsIsPCRelative::encode(false);
+ Bootstrapper::FixupFlagsIsPCRelative::encode(false) |
+ Bootstrapper::FixupFlagsUseCodeObject::encode(true);
Unresolved entry = { pc_offset() - sizeof(int32_t), flags, name };
unresolved_.Add(entry);
}