Commit 8de05cef authored by ager@chromium.org's avatar ager@chromium.org

Enable code generation for array literals.

Introduce macro assembler support for pushing heap-object handles and
for comparing a register to a heap-object handle.

Cleanup: Remove some code that was needlessly commented out.  Added
TODO's for code that was commented out (where we do not hit an
UNIMPLEMENTED). 
Review URL: http://codereview.chromium.org/140060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent dcd25643
This diff is collapsed.
......@@ -45,6 +45,14 @@ MacroAssembler::MacroAssembler(void* buffer, int size)
}
// TODO(x64): For now, the write barrier is disabled on x64 and we
// therefore generate no code. This should be fixed when the write
// barrier is enabled.
void MacroAssembler::RecordWrite(Register object, int offset,
Register value, Register scratch) {
}
void MacroAssembler::Assert(Condition cc, const char* msg) {
if (FLAG_debug_code) Check(cc, msg);
}
......@@ -301,6 +309,12 @@ void MacroAssembler::Cmp(Register dst, Handle<Object> source) {
}
void MacroAssembler::Push(Handle<Object> source) {
Move(kScratchRegister, source);
push(kScratchRegister);
}
void MacroAssembler::Jump(ExternalReference ext) {
movq(kScratchRegister, ext);
jmp(kScratchRegister);
......
......@@ -172,6 +172,7 @@ class MacroAssembler: public Assembler {
void Move(Register dst, Handle<Object> source);
void Move(const Operand& dst, Handle<Object> source);
void Cmp(Register dst, Handle<Object> source);
void Push(Handle<Object> source);
// Control Flow
void Jump(Address destination, RelocInfo::Mode rmode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment