Lines Matching refs:x86_64

32 class AssemblerX86_64Test : public AssemblerTest<x86_64::X86_64Assembler, x86_64::CpuRegister,
33 x86_64::Immediate> {
37 return "x86_64";
46 registers_.push_back(new x86_64::CpuRegister(x86_64::RAX));
47 registers_.push_back(new x86_64::CpuRegister(x86_64::RBX));
48 registers_.push_back(new x86_64::CpuRegister(x86_64::RCX));
49 registers_.push_back(new x86_64::CpuRegister(x86_64::RDX));
50 registers_.push_back(new x86_64::CpuRegister(x86_64::RBP));
51 registers_.push_back(new x86_64::CpuRegister(x86_64::RSP));
52 registers_.push_back(new x86_64::CpuRegister(x86_64::RSI));
53 registers_.push_back(new x86_64::CpuRegister(x86_64::RDI));
54 registers_.push_back(new x86_64::CpuRegister(x86_64::R8));
55 registers_.push_back(new x86_64::CpuRegister(x86_64::R9));
56 registers_.push_back(new x86_64::CpuRegister(x86_64::R10));
57 registers_.push_back(new x86_64::CpuRegister(x86_64::R11));
58 registers_.push_back(new x86_64::CpuRegister(x86_64::R12));
59 registers_.push_back(new x86_64::CpuRegister(x86_64::R13));
60 registers_.push_back(new x86_64::CpuRegister(x86_64::R14));
61 registers_.push_back(new x86_64::CpuRegister(x86_64::R15));
65 std::vector<x86_64::CpuRegister*> GetRegisters() OVERRIDE {
69 x86_64::Immediate* CreateImmediate(int64_t imm_value) OVERRIDE {
70 return new x86_64::Immediate(imm_value);
74 std::vector<x86_64::CpuRegister*> registers_;
84 DriverStr(RepeatR(&x86_64::X86_64Assembler::pushq, "pushq %{reg}"), "pushq");
88 DriverStr(RepeatI(&x86_64::X86_64Assembler::pushq, 4U, "pushq ${imm}"), "pushqi");
93 DriverStr(RepeatRR(&x86_64::X86_64Assembler::movq, "movq %{reg2}, %{reg1}"), "movq");
97 DriverStr(RepeatRI(&x86_64::X86_64Assembler::movq, 8U, "movq ${imm}, %{reg}"), "movqi");
102 DriverStr(RepeatRR(&x86_64::X86_64Assembler::addq, "addq %{reg2}, %{reg1}"), "addq");
106 DriverStr(RepeatRI(&x86_64::X86_64Assembler::addq, 4U, "addq ${imm}, %{reg}"), "addqi");
111 DriverStr(RepeatRR(&x86_64::X86_64Assembler::subq, "subq %{reg2}, %{reg1}"), "subq");
115 DriverStr(RepeatRI(&x86_64::X86_64Assembler::subq, 4U, "subq ${imm}, %{reg}"), "subqi");
120 DriverStr(RepeatRR(&x86_64::X86_64Assembler::cmpq, "cmpq %{reg2}, %{reg1}"), "cmpq");
125 DriverStr(RepeatRI(&x86_64::X86_64Assembler::xorq, 4U, "xorq ${imm}, %{reg}"), "xorqi");
129 GetAssembler()->movl(x86_64::CpuRegister(x86_64::R8), x86_64::CpuRegister(x86_64::R11));
130 GetAssembler()->movl(x86_64::CpuRegister(x86_64::RAX), x86_64::CpuRegister(x86_64::R11));
131 GetAssembler()->movl(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
132 x86_64::CpuRegister(x86_64::RDI), x86_64::CpuRegister(x86_64::RBX), x86_64::TIMES_4, 12));
133 GetAssembler()->movl(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
134 x86_64::CpuRegister(x86_64::RDI), x86_64::CpuRegister(x86_64::R9), x86_64::TIMES_4, 12));
135 GetAssembler()->movl(x86_64::CpuRegister(x86_64::R8), x86_64::Address(
136 x86_64::CpuRegister(x86_64::RDI), x86_64::CpuRegister(x86_64::R9), x86_64::TIMES_4, 12));
148 GetAssembler()->movw(x86_64::Address(x86_64::CpuRegister(x86_64::RAX), 0),
149 x86_64::CpuRegister(x86_64::R9));
155 std::string setcc_test_fn(x86_64::X86_64Assembler* assembler) {
177 std::vector<x86_64::CpuRegister*> registers;
178 registers.push_back(new x86_64::CpuRegister(x86_64::RAX));
179 registers.push_back(new x86_64::CpuRegister(x86_64::RBX));
180 registers.push_back(new x86_64::CpuRegister(x86_64::RCX));
181 registers.push_back(new x86_64::CpuRegister(x86_64::RDX));
182 registers.push_back(new x86_64::CpuRegister(x86_64::RBP));
183 registers.push_back(new x86_64::CpuRegister(x86_64::RSP));
184 registers.push_back(new x86_64::CpuRegister(x86_64::RSI));
185 registers.push_back(new x86_64::CpuRegister(x86_64::RDI));
186 registers.push_back(new x86_64::CpuRegister(x86_64::R8));
187 registers.push_back(new x86_64::CpuRegister(x86_64::R9));
188 registers.push_back(new x86_64::CpuRegister(x86_64::R10));
189 registers.push_back(new x86_64::CpuRegister(x86_64::R11));
190 registers.push_back(new x86_64::CpuRegister(x86_64::R12));
191 registers.push_back(new x86_64::CpuRegister(x86_64::R13));
192 registers.push_back(new x86_64::CpuRegister(x86_64::R14));
193 registers.push_back(new x86_64::CpuRegister(x86_64::R15));
196 byte_regs[x86_64::RAX] = "al";
197 byte_regs[x86_64::RBX] = "bl";
198 byte_regs[x86_64::RCX] = "cl";
199 byte_regs[x86_64::RDX] = "dl";
200 byte_regs[x86_64::RBP] = "bpl";
201 byte_regs[x86_64::RSP] = "spl";
202 byte_regs[x86_64::RSI] = "sil";
203 byte_regs[x86_64::RDI] = "dil";
204 byte_regs[x86_64::R8] = "r8b";
205 byte_regs[x86_64::R9] = "r9b";
206 byte_regs[x86_64::R10] = "r10b";
207 byte_regs[x86_64::R11] = "r11b";
208 byte_regs[x86_64::R12] = "r12b";
209 byte_regs[x86_64::R13] = "r13b";
210 byte_regs[x86_64::R14] = "r14b";
211 byte_regs[x86_64::R15] = "r15b";
217 assembler->setcc(static_cast<x86_64::Condition>(i), *reg);
229 static x86_64::X86_64ManagedRegister ManagedFromCpu(x86_64::Register r) {
230 return x86_64::X86_64ManagedRegister::FromCpuRegister(r);
233 static x86_64::X86_64ManagedRegister ManagedFromFpu(x86_64::FloatRegister r) {
234 return x86_64::X86_64ManagedRegister::FromXmmRegister(r);
237 std::string buildframe_test_fn(x86_64::X86_64Assembler* assembler) {
242 spill_regs.push_back(ManagedFromCpu(x86_64::R10));
243 spill_regs.push_back(ManagedFromCpu(x86_64::RSI));
247 ManagedRegisterSpill spill(ManagedFromCpu(x86_64::RAX), 8, 0);
249 ManagedRegisterSpill spill2(ManagedFromCpu(x86_64::RBX), 8, 8);
251 ManagedRegisterSpill spill3(ManagedFromFpu(x86_64::XMM1), 8, 16);
254 x86_64::X86_64ManagedRegister method_reg = ManagedFromCpu(x86_64::RDI);
281 std::string removeframe_test_fn(x86_64::X86_64Assembler* assembler) {
286 spill_regs.push_back(ManagedFromCpu(x86_64::R10));
287 spill_regs.push_back(ManagedFromCpu(x86_64::RSI));
309 std::string increaseframe_test_fn(x86_64::X86_64Assembler* assembler) {
327 std::string decreaseframe_test_fn(x86_64::X86_64Assembler* assembler) {