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

Side by Side Diff: src/arm/simulator-arm.h

Issue 6874010: ARM: Optimisations for call, jump and untag.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 9 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm/simulator-arm.cc » ('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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 void Format(Instruction* instr, const char* format); 216 void Format(Instruction* instr, const char* format);
217 217
218 // Checks if the current instruction should be executed based on its 218 // Checks if the current instruction should be executed based on its
219 // condition bits. 219 // condition bits.
220 bool ConditionallyExecute(Instruction* instr); 220 bool ConditionallyExecute(Instruction* instr);
221 221
222 // Helper functions to set the conditional flags in the architecture state. 222 // Helper functions to set the conditional flags in the architecture state.
223 void SetNZFlags(int32_t val); 223 void SetNZFlags(int32_t val);
224 void SetCFlag(bool val); 224 void SetCFlag(bool val);
225 void SetVFlag(bool val); 225 void SetVFlag(bool val);
226 bool CarryFrom(int32_t left, int32_t right); 226 bool CarryFrom(int32_t left, int32_t right, int32_t carry = 0);
227 bool BorrowFrom(int32_t left, int32_t right); 227 bool BorrowFrom(int32_t left, int32_t right);
228 bool OverflowFrom(int32_t alu_out, 228 bool OverflowFrom(int32_t alu_out,
229 int32_t left, 229 int32_t left,
230 int32_t right, 230 int32_t right,
231 bool addition); 231 bool addition);
232 232
233 inline int GetCarry() {
234 return c_flag_ ? 1 : 0;
235 };
236
233 // Support for VFP. 237 // Support for VFP.
234 void Compute_FPSCR_Flags(double val1, double val2); 238 void Compute_FPSCR_Flags(double val1, double val2);
235 void Copy_FPSCR_to_APSR(); 239 void Copy_FPSCR_to_APSR();
236 240
237 // Helper functions to decode common "addressing" modes 241 // Helper functions to decode common "addressing" modes
238 int32_t GetShiftRm(Instruction* instr, bool* carry_out); 242 int32_t GetShiftRm(Instruction* instr, bool* carry_out);
239 int32_t GetImm(Instruction* instr, bool* carry_out); 243 int32_t GetImm(Instruction* instr, bool* carry_out);
240 void ProcessPUW(Instruction* instr, 244 void ProcessPUW(Instruction* instr,
241 int num_regs, 245 int num_regs,
242 int operand_size, 246 int operand_size,
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 409
406 static inline void UnregisterCTryCatch() { 410 static inline void UnregisterCTryCatch() {
407 Simulator::current(Isolate::Current())->PopAddress(); 411 Simulator::current(Isolate::Current())->PopAddress();
408 } 412 }
409 }; 413 };
410 414
411 } } // namespace v8::internal 415 } } // namespace v8::internal
412 416
413 #endif // !defined(USE_SIMULATOR) 417 #endif // !defined(USE_SIMULATOR)
414 #endif // V8_ARM_SIMULATOR_ARM_H_ 418 #endif // V8_ARM_SIMULATOR_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm/simulator-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698