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

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

Issue 601028: Forking disassembler and simulator for Thumb2 support;... Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 10 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/SConscript ('k') | src/arm/assembler-thumb2.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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 28 matching lines...) Expand all
39 39
40 #ifndef V8_ARM_ASSEMBLER_ARM_H_ 40 #ifndef V8_ARM_ASSEMBLER_ARM_H_
41 #define V8_ARM_ASSEMBLER_ARM_H_ 41 #define V8_ARM_ASSEMBLER_ARM_H_
42 #include <stdio.h> 42 #include <stdio.h>
43 #include "assembler.h" 43 #include "assembler.h"
44 #include "serialize.h" 44 #include "serialize.h"
45 45
46 namespace v8 { 46 namespace v8 {
47 namespace internal { 47 namespace internal {
48 48
49
49 // CPU Registers. 50 // CPU Registers.
50 // 51 //
51 // 1) We would prefer to use an enum, but enum values are assignment- 52 // 1) We would prefer to use an enum, but enum values are assignment-
52 // compatible with int, which has caused code-generation bugs. 53 // compatible with int, which has caused code-generation bugs.
53 // 54 //
54 // 2) We would prefer to use a class instead of a struct but we don't like 55 // 2) We would prefer to use a class instead of a struct but we don't like
55 // the register initialization to depend on the particular initialization 56 // the register initialization to depend on the particular initialization
56 // order (which appears to be different on OS X, Linux, and Windows for the 57 // order (which appears to be different on OS X, Linux, and Windows for the
57 // installed versions of C++ we tried). Using a struct permits C-style 58 // installed versions of C++ we tried). Using a struct permits C-style
58 // "initialization". Also, the Register objects cannot be const as this 59 // "initialization". Also, the Register objects cannot be const as this
(...skipping 943 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 // source position information 1003 // source position information
1003 int current_position_; 1004 int current_position_;
1004 int current_statement_position_; 1005 int current_statement_position_;
1005 int written_position_; 1006 int written_position_;
1006 int written_statement_position_; 1007 int written_statement_position_;
1007 1008
1008 // Code emission 1009 // Code emission
1009 inline void CheckBuffer(); 1010 inline void CheckBuffer();
1010 void GrowBuffer(); 1011 void GrowBuffer();
1011 inline void emit(Instr x); 1012 inline void emit(Instr x);
1013 inline void emit_int32(int32_t x);
1012 1014
1013 // Instruction generation 1015 // Instruction generation
1014 void addrmod1(Instr instr, Register rn, Register rd, const Operand& x); 1016 void addrmod1(Instr instr, Register rn, Register rd, const Operand& x);
1015 void addrmod2(Instr instr, Register rd, const MemOperand& x); 1017 void addrmod2(Instr instr, Register rd, const MemOperand& x);
1016 void addrmod3(Instr instr, Register rd, const MemOperand& x); 1018 void addrmod3(Instr instr, Register rd, const MemOperand& x);
1017 void addrmod4(Instr instr, Register rn, RegList rl); 1019 void addrmod4(Instr instr, Register rn, RegList rl);
1018 void addrmod5(Instr instr, CRegister crd, const MemOperand& x); 1020 void addrmod5(Instr instr, CRegister crd, const MemOperand& x);
1019 1021
1020 // Labels 1022 // Labels
1021 void print(Label* L); 1023 void print(Label* L);
1022 void bind_to(Label* L, int pos); 1024 void bind_to(Label* L, int pos);
1023 void link_to(Label* L, Label* appendix); 1025 void link_to(Label* L, Label* appendix);
1024 void next(Label* L); 1026 void next(Label* L);
1025 1027
1026 // Record reloc info for current pc_ 1028 // Record reloc info for current pc_
1027 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0); 1029 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0);
1028 1030
1029 friend class RegExpMacroAssemblerARM; 1031 friend class RegExpMacroAssemblerARM;
1030 friend class RelocInfo; 1032 friend class RelocInfo;
1031 friend class CodePatcher; 1033 friend class CodePatcher;
1032 }; 1034 };
1033 1035
1034 } } // namespace v8::internal 1036 } } // namespace v8::internal
1035 1037
1036 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1038 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/SConscript ('k') | src/arm/assembler-thumb2.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698