| Index: src/x64/macro-assembler-x64.cc
|
| ===================================================================
|
| --- src/x64/macro-assembler-x64.cc (revision 2231)
|
| +++ src/x64/macro-assembler-x64.cc (working copy)
|
| @@ -267,6 +267,40 @@
|
| }
|
|
|
|
|
| +bool MacroAssembler::IsUnsafeSmi(Smi* value) {
|
| + return false;
|
| +}
|
| +
|
| +void MacroAssembler::LoadUnsafeSmi(Register dst, Smi* source) {
|
| + UNIMPLEMENTED();
|
| +}
|
| +
|
| +
|
| +void MacroAssembler::Move(Register dst, Handle<Object> source) {
|
| + if (source->IsSmi()) {
|
| + if (IsUnsafeSmi(source)) {
|
| + LoadUnsafeSmi(dst, source);
|
| + } else {
|
| + movq(dst, source, RelocInfo::NONE);
|
| + }
|
| + } else {
|
| + movq(dst, source, RelocInfo::EMBEDDED_OBJECT);
|
| + }
|
| +}
|
| +
|
| +
|
| +void MacroAssembler::Move(const Operand& dst, Handle<Object> source) {
|
| + Move(kScratchRegister, source);
|
| + movq(dst, kScratchRegister);
|
| +}
|
| +
|
| +
|
| +void MacroAssembler::Cmp(Register dst, Handle<Object> source) {
|
| + Move(kScratchRegister, source);
|
| + cmpq(dst, kScratchRegister);
|
| +}
|
| +
|
| +
|
| void MacroAssembler::Jump(ExternalReference ext) {
|
| movq(kScratchRegister, ext);
|
| jmp(kScratchRegister);
|
|
|