| Index: src/regexp-macro-assembler-irregexp-inl.h
|
| ===================================================================
|
| --- src/regexp-macro-assembler-irregexp-inl.h (revision 1168)
|
| +++ src/regexp-macro-assembler-irregexp-inl.h (working copy)
|
| @@ -36,12 +36,15 @@
|
| namespace v8 { namespace internal {
|
|
|
|
|
| -void RegExpMacroAssemblerIrregexp::Emit(uint32_t byte) {
|
| +void RegExpMacroAssemblerIrregexp::Emit(uint32_t byte,
|
| + uint32_t twenty_four_bits) {
|
| + uint32_t word = ((twenty_four_bits << BYTECODE_SHIFT) | byte);
|
| ASSERT(pc_ <= buffer_.length());
|
| - if (pc_ == buffer_.length()) {
|
| + if (pc_ + 3 >= buffer_.length()) {
|
| Expand();
|
| }
|
| - buffer_[pc_++] = byte;
|
| + *reinterpret_cast<uint32_t*>(buffer_.start() + pc_) = word;
|
| + pc_ += 4;
|
| }
|
|
|
|
|
| @@ -50,7 +53,7 @@
|
| if (pc_ + 1 >= buffer_.length()) {
|
| Expand();
|
| }
|
| - Store16(buffer_.start() + pc_, word);
|
| + *reinterpret_cast<uint16_t*>(buffer_.start() + pc_) = word;
|
| pc_ += 2;
|
| }
|
|
|
| @@ -60,7 +63,7 @@
|
| if (pc_ + 3 >= buffer_.length()) {
|
| Expand();
|
| }
|
| - Store32(buffer_.start() + pc_, word);
|
| + *reinterpret_cast<uint32_t*>(buffer_.start() + pc_) = word;
|
| pc_ += 4;
|
| }
|
|
|
|
|