v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
assembler-x64.h File Reference
#include "serialize.h"
Include dependency graph for assembler-x64.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Register
 
struct  XMMRegister
 
class  BASE_EMBEDDED< Visitor >
 
class  BASE_EMBEDDED< Visitor >
 
class  CpuFeatures
 
class  Assembler
 
class  BASE_EMBEDDED< Visitor >
 

Namespaces

 v8
 
 v8::internal
 

Macros

#define ASSEMBLER_INSTRUCTION_LIST(V)
 
#define DECLARE_INSTRUCTION(instruction)
 

Enumerations

enum  Condition {
  kNoCondition = -1, eq = 0 << 28, ne = 1 << 28, cs = 2 << 28,
  cc = 3 << 28, mi = 4 << 28, pl = 5 << 28, vs = 6 << 28,
  vc = 7 << 28, hi = 8 << 28, ls = 9 << 28, ge = 10 << 28,
  lt = 11 << 28, gt = 12 << 28, le = 13 << 28, al = 14 << 28,
  kSpecialCondition = 15 << 28, kNumberOfConditions = 16, hs = cs, lo = cc,
  eq = 0 << 28, ne = 1 << 28, hs = cs, lo = cc,
  mi = 4 << 28, pl = 5 << 28, vs = 6 << 28, vc = 7 << 28,
  hi = 8 << 28, ls = 9 << 28, ge = 10 << 28, lt = 11 << 28,
  gt = 12 << 28, le = 13 << 28, al = 14 << 28, nv = 15,
  no_condition = -1, overflow = 0, no_overflow = 1, below = 2,
  above_equal = 3, equal = 4, not_equal = 5, below_equal = 6,
  above = 7, negative = 8, positive = 9, parity_even = 10,
  parity_odd = 11, less = 12, greater_equal = 13, less_equal = 14,
  greater = 15, carry = below, not_carry = above_equal, zero = equal,
  not_zero = not_equal, sign = negative, not_sign = positive, kNoCondition = -1,
  overflow = 0, no_overflow = 1, Uless = 2, Ugreater_equal = 3,
  equal = 4, not_equal = 5, Uless_equal = 6, Ugreater = 7,
  negative = 8, positive = 9, parity_even = 10, parity_odd = 11,
  less = 12, greater_equal = 13, less_equal = 14, greater = 15,
  ueq = 16, nue = 17, cc_always = 18, carry = below,
  not_carry = above_equal, zero = equal, eq = 0 << 28, not_zero = not_equal,
  ne = 1 << 28, nz = not_equal, sign = negative, not_sign = positive,
  mi = 4 << 28, pl = 5 << 28, hi = 8 << 28, ls = 9 << 28,
  ge = 10 << 28, lt = 11 << 28, gt = 12 << 28, le = 13 << 28,
  hs = cs, lo = cc, al = 14 << 28, cc_default = kNoCondition,
  no_condition = -1, overflow = 0, no_overflow = 1, below = 2,
  above_equal = 3, equal = 4, not_equal = 5, below_equal = 6,
  above = 7, negative = 8, positive = 9, parity_even = 10,
  parity_odd = 11, less = 12, greater_equal = 13, less_equal = 14,
  greater = 15, always = 16, never = 17, carry = below,
  not_carry = above_equal, zero = equal, not_zero = not_equal, sign = negative,
  not_sign = positive, last_condition = greater
}
 
enum  ScaleFactor {
  times_1 = 0, times_2 = 1, times_4 = 2, times_8 = 3,
  times_int_size = times_4, times_half_pointer_size = times_2, times_pointer_size = times_4, times_twice_pointer_size = times_8,
  times_1 = 0, times_2 = 1, times_4 = 2, times_8 = 3,
  times_int_size = times_4, times_pointer_size = times_4
}
 

Functions

Condition NegateCondition (Condition cond)
 
Condition ReverseCondition (Condition cond)
 

Variables

const int kRegister_rax_Code = 0
 
const int kRegister_rcx_Code = 1
 
const int kRegister_rdx_Code = 2
 
const int kRegister_rbx_Code = 3
 
const int kRegister_rsp_Code = 4
 
const int kRegister_rbp_Code = 5
 
const int kRegister_rsi_Code = 6
 
const int kRegister_rdi_Code = 7
 
const int kRegister_r11_Code = 11
 
const int kRegister_r12_Code = 12
 
const int kRegister_r13_Code = 13
 
const int kRegister_r14_Code = 14
 
const int kRegister_r15_Code = 15
 
const Register rax = { kRegister_rax_Code }
 
const Register rcx = { kRegister_rcx_Code }
 
const Register rdx = { kRegister_rdx_Code }
 
const Register rbx = { kRegister_rbx_Code }
 
const Register rsp = { kRegister_rsp_Code }
 
const Register rbp = { kRegister_rbp_Code }
 
const Register rsi = { kRegister_rsi_Code }
 
const Register rdi = { kRegister_rdi_Code }
 
const Register r11 = { kRegister_r11_Code }
 
const Register r12 = { kRegister_r12_Code }
 
const Register r13 = { kRegister_r13_Code }
 
const Register r14 = { kRegister_r14_Code }
 
const Register r15 = { kRegister_r15_Code }
 
const Register arg_reg_1 = { kRegister_rdi_Code }
 
const Register arg_reg_2 = { kRegister_rsi_Code }
 
const Register arg_reg_3 = { kRegister_rdx_Code }
 
const Register arg_reg_4 = { kRegister_rcx_Code }
 
const XMMRegister xmm0 = { 0 }
 
const XMMRegister xmm1 = { 1 }
 
const XMMRegister xmm2 = { 2 }
 
const XMMRegister xmm3 = { 3 }
 
const XMMRegister xmm4 = { 4 }
 
const XMMRegister xmm5 = { 5 }
 
const XMMRegister xmm6 = { 6 }
 
const XMMRegister xmm7 = { 7 }
 
const XMMRegister xmm8 = { 8 }
 
const XMMRegister xmm9 = { 9 }
 
const XMMRegister xmm10 = { 10 }
 
const XMMRegister xmm11 = { 11 }
 
const XMMRegister xmm12 = { 12 }
 
const XMMRegister xmm13 = { 13 }
 
const XMMRegister xmm14 = { 14 }
 
const XMMRegister xmm15 = { 15 }
 

Macro Definition Documentation

#define ASSEMBLER_INSTRUCTION_LIST (   V)
Value:
V(add) \
V(and) \
V(cmp) \
V(dec) \
V(idiv) \
V(imul) \
V(inc) \
V(lea) \
V(mov) \
V(movzxb) \
V(movzxw) \
V(neg) \
V(not) \
V(or) \
V(repmovs) \
V(sbb) \
V(sub) \
V(test) \
V(xchg) \
V(xor)

Definition at line 512 of file assembler-x64.h.

#define DECLARE_INSTRUCTION (   instruction)

Definition at line 683 of file assembler-x64.h.