Lines Matching refs:Code
8 // - Redistributions of source code must retain the above copyright notice,
31 // The original source code covered by the above license above has been
71 // compatible with int, which has caused code-generation bugs.
83 // code generated for some assembly instructions (because they boil down
84 // to a few constants). If this is a problem, we could change the code
87 // and best performance in optimized code.
105 return kAllocationIndexByRegisterCode[reg.code()];
131 static Register from_code(int code) {
132 Register r = { code };
139 int code() const {
147 // Return the high bit of the register code as a 0 or 1. Used often
152 // Return the 3 low bits of the register code. Used when encoding registers
225 ASSERT(reg.code() != 0);
226 return reg.code() - 1;
257 static XMMRegister from_code(int code) {
258 ASSERT(code >= 0);
259 ASSERT(code < kMaxNumRegisters);
260 XMMRegister r = { code };
265 int code() const {
270 // Return the high bit of the register code as a 0 or 1. Used often
275 // Return the 3 low bits of the register code. Used when encoding registers
462 // // Generate SSE3 floating point code.
464 // // Generate standard SSE2 floating point code.
536 // for code generation and assumes its size to be buffer_size. If the buffer
542 // GetCode emits any pending (non-emitted) code and fills the descriptor
547 // Read/Modify the code target in the relative branch/call instruction at pc.
549 // to jump to other Code objects in the Code space in the heap.
552 // These functions convert between absolute Addresses of Code objects and
553 // the relative displacements stored in the code.
557 // Return the code target address at a call site from the return address
562 // This is for calls and branches within generated code.
569 // This is for calls and branches to runtime code.
577 // Number of bytes taken up by the branch target in the code.
579 // Distance between the address of the code target in the call instruction
595 // call sequence, some x64 JS code is padded with int3 to make it large
629 // Code generation
652 // Aligns code to something that's optimal for a jump target for the platform.
1129 if (dst.code() == src.code()) {
1198 void bind(Label* L); // binds an unbound label L to the current code position
1204 void call(Handle<Code> target,
1209 // Should only ever be used in Code objects for calls within the
1210 // same Code object. Should not be used when generating new code (use labels),
1211 // but only when patching existing code.
1226 void jmp(Handle<Code> target, RelocInfo::Mode rmode);
1239 void j(Condition cc, Handle<Code> target, RelocInfo::Mode rmode);
1398 // Check the code size generated from label to here.
1403 // Mark address of the ExitJSFrame code.
1410 // Use --code-comments to enable.
1413 // Writes a single word of data in the code stream.
1449 // code emission
1457 inline void emit_code_target(Handle<Code> target,
1480 // the top bit of the register code.
1567 void emit_modrm(int code, Register rm_reg) {
1568 ASSERT(is_uint3(code));
1569 emit(0xC0 | code << 3 | rm_reg.low_bits());
1572 // Emit the code-object-relative offset of the label's position
1575 // Emit machine code for one of the operations ADD, ADC, SUB, SBC,
1609 // Emit machine code for a shift operation.
1629 // code generation
1632 List< Handle<Code> > code_targets_;