Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Side by Side Diff: src/mips/lithium-codegen-mips.cc

Issue 18881005: MIPS: Replace custom builtin invocation instructions by a generic version. (Closed) Base URL: https://github.com/v8/v8.git@gbl
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/mips/lithium-mips.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 5716 matching lines...) Expand 10 before | Expand all | Expand 10 after
5727 DeoptimizeIf(al, instr->environment(), zero_reg, Operand(zero_reg)); 5727 DeoptimizeIf(al, instr->environment(), zero_reg, Operand(zero_reg));
5728 } 5728 }
5729 } 5729 }
5730 5730
5731 5731
5732 void LCodeGen::DoDummyUse(LDummyUse* instr) { 5732 void LCodeGen::DoDummyUse(LDummyUse* instr) {
5733 // Nothing to see here, move on! 5733 // Nothing to see here, move on!
5734 } 5734 }
5735 5735
5736 5736
5737 void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) {
5738 Register object = ToRegister(instr->object());
5739 Register key = ToRegister(instr->key());
5740 Register strict = scratch0();
5741 __ li(strict, Operand(Smi::FromInt(strict_mode_flag())));
5742 __ Push(object, key, strict);
5743 ASSERT(instr->HasPointerMap());
5744 LPointerMap* pointers = instr->pointer_map();
5745 RecordPosition(pointers->position());
5746 SafepointGenerator safepoint_generator(
5747 this, pointers, Safepoint::kLazyDeopt);
5748 __ InvokeBuiltin(Builtins::DELETE, CALL_FUNCTION, safepoint_generator);
5749 }
5750
5751
5752 void LCodeGen::DoIn(LIn* instr) {
5753 Register obj = ToRegister(instr->object());
5754 Register key = ToRegister(instr->key());
5755 __ Push(key, obj);
5756 ASSERT(instr->HasPointerMap());
5757 LPointerMap* pointers = instr->pointer_map();
5758 RecordPosition(pointers->position());
5759 SafepointGenerator safepoint_generator(this, pointers, Safepoint::kLazyDeopt);
5760 __ InvokeBuiltin(Builtins::IN, CALL_FUNCTION, safepoint_generator);
5761 }
5762
5763
5764 void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) { 5737 void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
5765 PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters); 5738 PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
5766 __ CallRuntimeSaveDoubles(Runtime::kStackGuard); 5739 __ CallRuntimeSaveDoubles(Runtime::kStackGuard);
5767 RecordSafepointWithLazyDeopt( 5740 RecordSafepointWithLazyDeopt(
5768 instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS); 5741 instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
5769 ASSERT(instr->HasEnvironment()); 5742 ASSERT(instr->HasEnvironment());
5770 LEnvironment* env = instr->environment(); 5743 LEnvironment* env = instr->environment();
5771 safepoints_.RecordLazyDeoptimizationIndex(env->deoptimization_index()); 5744 safepoints_.RecordLazyDeoptimizationIndex(env->deoptimization_index());
5772 } 5745 }
5773 5746
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
5921 __ Subu(scratch, result, scratch); 5894 __ Subu(scratch, result, scratch);
5922 __ lw(result, FieldMemOperand(scratch, 5895 __ lw(result, FieldMemOperand(scratch,
5923 FixedArray::kHeaderSize - kPointerSize)); 5896 FixedArray::kHeaderSize - kPointerSize));
5924 __ bind(&done); 5897 __ bind(&done);
5925 } 5898 }
5926 5899
5927 5900
5928 #undef __ 5901 #undef __
5929 5902
5930 } } // namespace v8::internal 5903 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | src/mips/lithium-mips.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698