OLD | NEW |
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 2994 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3005 // end of S390instructions | 3005 // end of S390instructions |
3006 | 3006 |
3007 bool Assembler::IsNop(SixByteInstr instr, int type) { | 3007 bool Assembler::IsNop(SixByteInstr instr, int type) { |
3008 DCHECK((0 == type) || (DEBUG_BREAK_NOP == type)); | 3008 DCHECK((0 == type) || (DEBUG_BREAK_NOP == type)); |
3009 if (DEBUG_BREAK_NOP == type) { | 3009 if (DEBUG_BREAK_NOP == type) { |
3010 return ((instr & 0xffffffff) == 0xa53b0000); // oill r3, 0 | 3010 return ((instr & 0xffffffff) == 0xa53b0000); // oill r3, 0 |
3011 } | 3011 } |
3012 return ((instr & 0xffff) == 0x1800); // lr r0,r0 | 3012 return ((instr & 0xffff) == 0x1800); // lr r0,r0 |
3013 } | 3013 } |
3014 | 3014 |
| 3015 // dummy instruction reserved for special use. |
| 3016 void Assembler::dumy(int r1, int x2, int b2, int d2) { |
| 3017 #if defined(USE_SIMULATOR) |
| 3018 int op = 0xE353; |
| 3019 uint64_t code = (static_cast<uint64_t>(op & 0xFF00)) * B32 | |
| 3020 (static_cast<uint64_t>(r1) & 0xF) * B36 | |
| 3021 (static_cast<uint64_t>(x2) & 0xF) * B32 | |
| 3022 (static_cast<uint64_t>(b2) & 0xF) * B28 | |
| 3023 (static_cast<uint64_t>(d2 & 0x0FFF)) * B16 | |
| 3024 (static_cast<uint64_t>(d2 & 0x0FF000)) >> 4 | |
| 3025 (static_cast<uint64_t>(op & 0x00FF)); |
| 3026 emit6bytes(code); |
| 3027 #endif |
| 3028 } |
| 3029 |
3015 void Assembler::GrowBuffer(int needed) { | 3030 void Assembler::GrowBuffer(int needed) { |
3016 if (!own_buffer_) FATAL("external code buffer is too small"); | 3031 if (!own_buffer_) FATAL("external code buffer is too small"); |
3017 | 3032 |
3018 // Compute new buffer size. | 3033 // Compute new buffer size. |
3019 CodeDesc desc; // the new buffer | 3034 CodeDesc desc; // the new buffer |
3020 if (buffer_size_ < 4 * KB) { | 3035 if (buffer_size_ < 4 * KB) { |
3021 desc.buffer_size = 4 * KB; | 3036 desc.buffer_size = 4 * KB; |
3022 } else if (buffer_size_ < 1 * MB) { | 3037 } else if (buffer_size_ < 1 * MB) { |
3023 desc.buffer_size = 2 * buffer_size_; | 3038 desc.buffer_size = 2 * buffer_size_; |
3024 } else { | 3039 } else { |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3128 SKIP_ICACHE_FLUSH); | 3143 SKIP_ICACHE_FLUSH); |
3129 } | 3144 } |
3130 | 3145 |
3131 reloc_info_writer.Write(&rinfo); | 3146 reloc_info_writer.Write(&rinfo); |
3132 } | 3147 } |
3133 } | 3148 } |
3134 | 3149 |
3135 } // namespace internal | 3150 } // namespace internal |
3136 } // namespace v8 | 3151 } // namespace v8 |
3137 #endif // V8_TARGET_ARCH_S390 | 3152 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |