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

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

Issue 173567: ARM native regexps. (Closed)
Patch Set: Created 11 years, 3 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
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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 p13 = 13, 158 p13 = 13,
159 p14 = 14, 159 p14 = 14,
160 p15 = 15 160 p15 = 15
161 }; 161 };
162 162
163 163
164 // Condition field in instructions 164 // Condition field in instructions
165 enum Condition { 165 enum Condition {
166 eq = 0 << 28, // Z set equal. 166 eq = 0 << 28, // Z set equal.
167 ne = 1 << 28, // Z clear not equal. 167 ne = 1 << 28, // Z clear not equal.
168 cs = 2 << 28, // C set unsigned higher or same. 168 nz = 1 << 28, // Z clear not zero.
169 cs = 2 << 28, // C set carry set.
169 hs = 2 << 28, // C set unsigned higher or same. 170 hs = 2 << 28, // C set unsigned higher or same.
170 cc = 3 << 28, // C clear unsigned lower. 171 cc = 3 << 28, // C clear carry clear.
171 lo = 3 << 28, // C clear unsigned lower. 172 lo = 3 << 28, // C clear unsigned lower.
172 mi = 4 << 28, // N set negative. 173 mi = 4 << 28, // N set negative.
173 pl = 5 << 28, // N clear positive or zero. 174 pl = 5 << 28, // N clear positive or zero.
174 vs = 6 << 28, // V set overflow. 175 vs = 6 << 28, // V set overflow.
175 vc = 7 << 28, // V clear no overflow. 176 vc = 7 << 28, // V clear no overflow.
176 hi = 8 << 28, // C set, Z clear unsigned higher. 177 hi = 8 << 28, // C set, Z clear unsigned higher.
177 ls = 9 << 28, // C clear or Z set unsigned lower or same. 178 ls = 9 << 28, // C clear or Z set unsigned lower or same.
178 ge = 10 << 28, // N == V greater or equal. 179 ge = 10 << 28, // N == V greater or equal.
179 lt = 11 << 28, // N != V less than. 180 lt = 11 << 28, // N != V less than.
180 gt = 12 << 28, // Z clear, N == V greater than. 181 gt = 12 << 28, // Z clear, N == V greater than.
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 // Note: The same Label can be used for forward and backward branches 414 // Note: The same Label can be used for forward and backward branches
414 // but it may be bound only once. 415 // but it may be bound only once.
415 416
416 void bind(Label* L); // binds an unbound label L to the current code position 417 void bind(Label* L); // binds an unbound label L to the current code position
417 418
418 // Returns the branch offset to the given label from the current code position 419 // Returns the branch offset to the given label from the current code position
419 // Links the label to the current position if it is still unbound 420 // Links the label to the current position if it is still unbound
420 // Manages the jump elimination optimization if the second parameter is true. 421 // Manages the jump elimination optimization if the second parameter is true.
421 int branch_offset(Label* L, bool jump_elimination_allowed); 422 int branch_offset(Label* L, bool jump_elimination_allowed);
422 423
424 // Puts a labels target address at the given position.
Erik Corry 2009/08/27 14:43:05 labels -> label's
425 // The high 8 bits are set to zero.
Erik Corry 2009/08/27 14:43:05 I wonder why?
426 void label_at_put(Label* L, int at_offset);
Erik Corry 2009/08/27 14:43:05 Gotta love that smalltalk syntax, but the index sh
427
423 // Return the address in the constant pool of the code target address used by 428 // Return the address in the constant pool of the code target address used by
424 // the branch/call instruction at pc. 429 // the branch/call instruction at pc.
425 INLINE(static Address target_address_address_at(Address pc)); 430 INLINE(static Address target_address_address_at(Address pc));
426 431
427 // Read/Modify the code target address in the branch/call instruction at pc. 432 // Read/Modify the code target address in the branch/call instruction at pc.
428 INLINE(static Address target_address_at(Address pc)); 433 INLINE(static Address target_address_at(Address pc));
429 INLINE(static void set_target_address_at(Address pc, Address target)); 434 INLINE(static void set_target_address_at(Address pc, Address target));
430 435
431 // Distance between the instruction referring to the address of the call 436 // Distance between the instruction referring to the address of the call
432 // target (ldr pc, [target addr in const pool]) and the return address 437 // target (ldr pc, [target addr in const pool]) and the return address
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 void addrmod5(Instr instr, CRegister crd, const MemOperand& x); 782 void addrmod5(Instr instr, CRegister crd, const MemOperand& x);
778 783
779 // Labels 784 // Labels
780 void print(Label* L); 785 void print(Label* L);
781 void bind_to(Label* L, int pos); 786 void bind_to(Label* L, int pos);
782 void link_to(Label* L, Label* appendix); 787 void link_to(Label* L, Label* appendix);
783 void next(Label* L); 788 void next(Label* L);
784 789
785 // Record reloc info for current pc_ 790 // Record reloc info for current pc_
786 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0); 791 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0);
792
793 friend class RegExpMacroAssemblerARM;
787 }; 794 };
788 795
789 } } // namespace v8::internal 796 } } // namespace v8::internal
790 797
791 #endif // V8_ARM_ASSEMBLER_ARM_H_ 798 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/SConscript ('k') | src/arm/assembler-arm.cc » ('j') | src/arm/assembler-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698