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

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

Issue 651029: Forking disassembler and simulator for Thumb2 support; (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 9 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/regexp-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 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 void DecodeType5(Instr* instr); 225 void DecodeType5(Instr* instr);
226 void DecodeType6(Instr* instr); 226 void DecodeType6(Instr* instr);
227 void DecodeType7(Instr* instr); 227 void DecodeType7(Instr* instr);
228 void DecodeUnconditional(Instr* instr); 228 void DecodeUnconditional(Instr* instr);
229 229
230 // Support for VFP. 230 // Support for VFP.
231 void DecodeTypeVFP(Instr* instr); 231 void DecodeTypeVFP(Instr* instr);
232 void DecodeType6CoprocessorIns(Instr* instr); 232 void DecodeType6CoprocessorIns(Instr* instr);
233 233
234 // Executes one instruction. 234 // Executes one instruction.
235 void InstructionDecode(Instr* instr); 235 void InstructionDecode(int32_t pc);
236 void InstructionDecodeArm(Instr* instr);
237 void InstructionDecodeThumb2(byte* pc);
236 238
237 // Runtime call support. 239 // Runtime call support.
238 static void* RedirectExternalReference(void* external_function, 240 static void* RedirectExternalReference(void* external_function,
239 bool fp_return); 241 bool fp_return);
240 242
241 // For use in calls that take two double values, constructed from r0, r1, r2 243 // For use in calls that take two double values, constructed from r0, r1, r2
242 // and r3. 244 // and r3.
243 void GetFpArgs(double* x, double* y); 245 void GetFpArgs(double* x, double* y);
244 void SetFpResult(const double& result); 246 void SetFpResult(const double& result);
245 void TrashCallerSaveRegisters(); 247 void TrashCallerSaveRegisters();
248 // Thumb specific stuff
249 int32_t GetOperand2(const InstrThumb2& instr, bool* carry_out);
250 int32_t GetRmShiftImm(const InstrThumb2& instr, bool* carry_out);
251 void PrintThumb2(const InstrThumb2& instr);
252 inline bool InThumbMode() const {return (get_pc() & 1) == 1;};
246 253
247 // Architecture state. 254 // Architecture state.
248 int32_t registers_[16]; 255 int32_t registers_[16];
249 bool n_flag_; 256 bool n_flag_;
250 bool z_flag_; 257 bool z_flag_;
251 bool c_flag_; 258 bool c_flag_;
252 bool v_flag_; 259 bool v_flag_;
253 260
254 // VFP architecture state. 261 // VFP architecture state.
255 unsigned int vfp_register[num_s_registers]; 262 unsigned int vfp_register[num_s_registers];
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 304
298 static inline void UnregisterCTryCatch() { 305 static inline void UnregisterCTryCatch() {
299 assembler::arm::Simulator::current()->PopAddress(); 306 assembler::arm::Simulator::current()->PopAddress();
300 } 307 }
301 }; 308 };
302 309
303 310
304 #endif // defined(__arm__) 311 #endif // defined(__arm__)
305 312
306 #endif // V8_ARM_SIMULATOR_ARM_H_ 313 #endif // V8_ARM_SIMULATOR_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/regexp-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