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

Side by Side Diff: src/x64/assembler-x64.cc

Issue 547024: RegExp bitmap test for word character. (Closed)
Patch Set: Changed to char-map. Created 10 years, 11 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 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 1862 matching lines...) Expand 10 before | Expand all | Expand 10 after
1873 ASSERT(is_int8(mask.value_) || is_uint8(mask.value_)); 1873 ASSERT(is_int8(mask.value_) || is_uint8(mask.value_));
1874 EnsureSpace ensure_space(this); 1874 EnsureSpace ensure_space(this);
1875 last_pc_ = pc_; 1875 last_pc_ = pc_;
1876 emit_optional_rex_32(rax, op); 1876 emit_optional_rex_32(rax, op);
1877 emit(0xF6); 1877 emit(0xF6);
1878 emit_operand(rax, op); // Operation code 0 1878 emit_operand(rax, op); // Operation code 0
1879 emit(mask.value_); // Low byte emitted. 1879 emit(mask.value_); // Low byte emitted.
1880 } 1880 }
1881 1881
1882 1882
1883 void Assembler::testb(const Operand& op, Register reg) {
1884 EnsureSpace ensure_space(this);
1885 last_pc_ = pc_;
1886 if (reg.code() > 3) {
1887 // Register is not one of al, bl, cl, dl. Its encoding needs REX.
1888 emit_rex_32(reg, op);
1889 } else {
1890 emit_optional_rex_32(reg, op);
1891 }
1892 emit(0x84);
1893 emit_operand(reg, op);
1894 }
1895
1896
1883 void Assembler::testl(Register dst, Register src) { 1897 void Assembler::testl(Register dst, Register src) {
1884 EnsureSpace ensure_space(this); 1898 EnsureSpace ensure_space(this);
1885 last_pc_ = pc_; 1899 last_pc_ = pc_;
1886 emit_optional_rex_32(dst, src); 1900 emit_optional_rex_32(dst, src);
1887 emit(0x85); 1901 emit(0x85);
1888 emit_modrm(dst, src); 1902 emit_modrm(dst, src);
1889 } 1903 }
1890 1904
1891 1905
1892 void Assembler::testl(Register reg, Immediate mask) { 1906 void Assembler::testl(Register reg, Immediate mask) {
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
2530 written_position_ = current_position_; 2544 written_position_ = current_position_;
2531 } 2545 }
2532 } 2546 }
2533 2547
2534 2548
2535 const int RelocInfo::kApplyMask = RelocInfo::kCodeTargetMask | 2549 const int RelocInfo::kApplyMask = RelocInfo::kCodeTargetMask |
2536 1 << RelocInfo::INTERNAL_REFERENCE | 2550 1 << RelocInfo::INTERNAL_REFERENCE |
2537 1 << RelocInfo::JS_RETURN; 2551 1 << RelocInfo::JS_RETURN;
2538 2552
2539 } } // namespace v8::internal 2553 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698