Home | History | Annotate | Download | only in x64

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.
102 return kAllocationIndexByRegisterCode[reg.code()];
128 static Register from_code(int code) {
129 Register r = { code };
136 int code() const {
144 // Return the high bit of the register code as a 0 or 1. Used often
149 // Return the 3 low bits of the register code. Used when encoding registers
206 ASSERT(reg.code() != 0);
207 return reg.code() - 1;
238 static XMMRegister from_code(int code) {
239 ASSERT(code >= 0);
240 ASSERT(code < kNumRegisters);
241 XMMRegister r = { code };
246 int code() const {
251 // Return the high bit of the register code as a 0 or 1. Used often
256 // Return the 3 low bits of the register code. Used when encoding registers
443 // // Generate SSE3 floating point code.
445 // // Generate standard x87 or SSE2 floating point code.
554 // for code generation and assumes its size to be buffer_size. If the buffer
563 // GetCode emits any pending (non-emitted) code and fills the descriptor
568 // Read/Modify the code target in the relative branch/call instruction at pc.
570 // to jump to other Code objects in the Code space in the heap.
573 // These functions convert between absolute Addresses of Code objects and
574 // the relative displacements stored in the code.
579 // This is for calls and branches within generated code.
586 // This is for calls and branches to runtime code.
593 // Number of bytes taken up by the branch target in the code.
595 // Distance between the address of the code target in the call instruction
611 // Some x64 JS code is padded with int3 to make it large
636 // Code generation
659 // Aligns code to something that's optimal for a jump target for the platform.
1127 if (dst.code() == src.code()) {
1196 void bind(Label* L); // binds an unbound label L to the current code position
1201 void call(Handle<Code> target,
1206 // Should only ever be used in Code objects for calls within the
1207 // same Code object. Should not be used when generating new code (use labels),
1208 // but only when patching existing code.
1222 void jmp(Handle<Code> target, RelocInfo::Mode rmode);
1234 void j(Condition cc, Handle<Code> target, RelocInfo::Mode rmode);
1387 // Check the code size generated from label to here.
1392 // Mark address of the ExitJSFrame code.
1399 // Use --code-comments to enable.
1402 // Writes a single word of data in the code stream.
1444 // code emission
1451 inline void emit_code_target(Handle<Code> target,
1473 // the top bit of the register code.
1560 void emit_modrm(int code, Register rm_reg) {
1561 ASSERT(is_uint3(code));
1562 emit(0xC0 | code << 3 | rm_reg.low_bits());
1565 // Emit the code-object-relative offset of the label's position
1568 // Emit machine code for one of the operations ADD, ADC, SUB, SBC,
1602 // Emit machine code for a shift operation.
1622 // Code buffer:
1623 // The buffer into which code and relocation info are generated.
1629 // code generation
1633 List< Handle<Code> > code_targets_;