Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Side by Side Diff: lib/Target/X86/X86RegisterInfo.td

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/Target/X86/X86RegisterInfo.cpp ('k') | lib/Target/X86/X86SelectionDAGInfo.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- X86RegisterInfo.td - Describe the X86 Register File --*- tablegen -*-==// 1 //===- X86RegisterInfo.td - Describe the X86 Register File --*- tablegen -*-==//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file describes the X86 Register file, defining the registers themselves, 10 // This file describes the X86 Register file, defining the registers themselves,
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 def EFLAGS : X86Reg<"flags", 0>; 255 def EFLAGS : X86Reg<"flags", 0>;
256 256
257 // Segment registers 257 // Segment registers
258 def CS : X86Reg<"cs", 1>; 258 def CS : X86Reg<"cs", 1>;
259 def DS : X86Reg<"ds", 3>; 259 def DS : X86Reg<"ds", 3>;
260 def SS : X86Reg<"ss", 2>; 260 def SS : X86Reg<"ss", 2>;
261 def ES : X86Reg<"es", 0>; 261 def ES : X86Reg<"es", 0>;
262 def FS : X86Reg<"fs", 4>; 262 def FS : X86Reg<"fs", 4>;
263 def GS : X86Reg<"gs", 5>; 263 def GS : X86Reg<"gs", 5>;
264 264
265 def PSEUDO_NACL_SEG : X86Reg<"nacl", 6>; // @LOCALMOD
266
265 // Debug registers 267 // Debug registers
266 def DR0 : X86Reg<"dr0", 0>; 268 def DR0 : X86Reg<"dr0", 0>;
267 def DR1 : X86Reg<"dr1", 1>; 269 def DR1 : X86Reg<"dr1", 1>;
268 def DR2 : X86Reg<"dr2", 2>; 270 def DR2 : X86Reg<"dr2", 2>;
269 def DR3 : X86Reg<"dr3", 3>; 271 def DR3 : X86Reg<"dr3", 3>;
270 def DR4 : X86Reg<"dr4", 4>; 272 def DR4 : X86Reg<"dr4", 4>;
271 def DR5 : X86Reg<"dr5", 5>; 273 def DR5 : X86Reg<"dr5", 5>;
272 def DR6 : X86Reg<"dr6", 6>; 274 def DR6 : X86Reg<"dr6", 6>;
273 def DR7 : X86Reg<"dr7", 7>; 275 def DR7 : X86Reg<"dr7", 7>;
274 276
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 // GR64 - 64-bit GPRs. This oddly includes RIP, which isn't accurate, since 334 // GR64 - 64-bit GPRs. This oddly includes RIP, which isn't accurate, since
333 // RIP isn't really a register and it can't be used anywhere except in an 335 // RIP isn't really a register and it can't be used anywhere except in an
334 // address, but it doesn't cause trouble. 336 // address, but it doesn't cause trouble.
335 def GR64 : RegisterClass<"X86", [i64], 64, 337 def GR64 : RegisterClass<"X86", [i64], 64,
336 (add RAX, RCX, RDX, RSI, RDI, R8, R9, R10, R11, 338 (add RAX, RCX, RDX, RSI, RDI, R8, R9, R10, R11,
337 RBX, R14, R15, R12, R13, RBP, RSP, RIP)>; 339 RBX, R14, R15, R12, R13, RBP, RSP, RIP)>;
338 340
339 // Segment registers for use by MOV instructions (and others) that have a 341 // Segment registers for use by MOV instructions (and others) that have a
340 // segment register as one operand. Always contain a 16-bit segment 342 // segment register as one operand. Always contain a 16-bit segment
341 // descriptor. 343 // descriptor.
342 def SEGMENT_REG : RegisterClass<"X86", [i16], 16, (add CS, DS, SS, ES, FS, GS)>; 344 def SEGMENT_REG : RegisterClass<"X86", [i16], 16, (add CS, DS, SS, ES, FS, GS,
345 // @LOCALMOD
346 PSEUDO_NACL_SEG)>;
343 347
344 // Debug registers. 348 // Debug registers.
345 def DEBUG_REG : RegisterClass<"X86", [i32], 32, (sequence "DR%u", 0, 7)>; 349 def DEBUG_REG : RegisterClass<"X86", [i32], 32, (sequence "DR%u", 0, 7)>;
346 350
347 // Control registers. 351 // Control registers.
348 def CONTROL_REG : RegisterClass<"X86", [i64], 64, (sequence "CR%u", 0, 15)>; 352 def CONTROL_REG : RegisterClass<"X86", [i64], 64, (sequence "CR%u", 0, 15)>;
349 353
350 // GR8_ABCD_L, GR8_ABCD_H, GR16_ABCD, GR32_ABCD, GR64_ABCD - Subclasses of 354 // GR8_ABCD_L, GR8_ABCD_H, GR16_ABCD, GR32_ABCD, GR64_ABCD - Subclasses of
351 // GR8, GR16, GR32, and GR64 which contain just the "a" "b", "c", and "d" 355 // GR8, GR16, GR32, and GR64 which contain just the "a" "b", "c", and "d"
352 // registers. On x86-32, GR16_ABCD and GR32_ABCD are classes for registers 356 // registers. On x86-32, GR16_ABCD and GR32_ABCD are classes for registers
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 def VK32 : RegisterClass<"X86", [v32i1], 32, (add VK16)> {let Size = 32;} 473 def VK32 : RegisterClass<"X86", [v32i1], 32, (add VK16)> {let Size = 32;}
470 def VK64 : RegisterClass<"X86", [v64i1], 64, (add VK32)> {let Size = 64;} 474 def VK64 : RegisterClass<"X86", [v64i1], 64, (add VK32)> {let Size = 64;}
471 475
472 def VK1WM : RegisterClass<"X86", [i1], 16, (sub VK1, K0)> {let Size = 16;} 476 def VK1WM : RegisterClass<"X86", [i1], 16, (sub VK1, K0)> {let Size = 16;}
473 def VK2WM : RegisterClass<"X86", [v2i1], 16, (sub VK2, K0)> {let Size = 16;} 477 def VK2WM : RegisterClass<"X86", [v2i1], 16, (sub VK2, K0)> {let Size = 16;}
474 def VK4WM : RegisterClass<"X86", [v4i1], 16, (sub VK4, K0)> {let Size = 16;} 478 def VK4WM : RegisterClass<"X86", [v4i1], 16, (sub VK4, K0)> {let Size = 16;}
475 def VK8WM : RegisterClass<"X86", [v8i1], 16, (sub VK8, K0)> {let Size = 16;} 479 def VK8WM : RegisterClass<"X86", [v8i1], 16, (sub VK8, K0)> {let Size = 16;}
476 def VK16WM : RegisterClass<"X86", [v16i1], 16, (add VK8WM)> {let Size = 16;} 480 def VK16WM : RegisterClass<"X86", [v16i1], 16, (add VK8WM)> {let Size = 16;}
477 def VK32WM : RegisterClass<"X86", [v32i1], 32, (add VK16WM)> {let Size = 32;} 481 def VK32WM : RegisterClass<"X86", [v32i1], 32, (add VK16WM)> {let Size = 32;}
478 def VK64WM : RegisterClass<"X86", [v64i1], 64, (add VK32WM)> {let Size = 64;} 482 def VK64WM : RegisterClass<"X86", [v64i1], 64, (add VK32WM)> {let Size = 64;}
OLDNEW
« no previous file with comments | « lib/Target/X86/X86RegisterInfo.cpp ('k') | lib/Target/X86/X86SelectionDAGInfo.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698