comparison graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/AMD64.java @ 5547:b6617d13ea44

Dropping Ci* prefixes. Some additional renamings in the api.code interface.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 09 Jun 2012 20:10:05 +0200
parents a891c53a295b
children 956217932b8c
comparison
equal deleted inserted replaced
5546:e42c0df7212a 5547:b6617d13ea44
20 * or visit www.oracle.com if you need additional information or have any 20 * or visit www.oracle.com if you need additional information or have any
21 * questions. 21 * questions.
22 */ 22 */
23 package com.oracle.max.asm.target.amd64; 23 package com.oracle.max.asm.target.amd64;
24 24
25 import static com.oracle.graal.api.code.CiRegister.RegisterFlag.*; 25 import static com.oracle.graal.api.code.Register.RegisterFlag.*;
26 import static com.oracle.graal.api.meta.Kind.*; 26 import static com.oracle.graal.api.meta.Kind.*;
27 import static com.oracle.max.cri.util.MemoryBarriers.*; 27 import static com.oracle.max.cri.util.MemoryBarriers.*;
28 28
29 import com.oracle.graal.api.code.*; 29 import com.oracle.graal.api.code.*;
30 import com.oracle.graal.api.code.CiRegister.*; 30 import com.oracle.graal.api.code.Register.*;
31 31
32 /** 32 /**
33 * Represents the AMD64 architecture. 33 * Represents the AMD64 architecture.
34 */ 34 */
35 public class AMD64 extends CiArchitecture { 35 public class AMD64 extends Architecture {
36 36
37 // General purpose CPU registers 37 // General purpose CPU registers
38 public static final CiRegister rax = new CiRegister(0, 0, 8, "rax", CPU, RegisterFlag.Byte); 38 public static final Register rax = new Register(0, 0, 8, "rax", CPU, RegisterFlag.Byte);
39 public static final CiRegister rcx = new CiRegister(1, 1, 8, "rcx", CPU, RegisterFlag.Byte); 39 public static final Register rcx = new Register(1, 1, 8, "rcx", CPU, RegisterFlag.Byte);
40 public static final CiRegister rdx = new CiRegister(2, 2, 8, "rdx", CPU, RegisterFlag.Byte); 40 public static final Register rdx = new Register(2, 2, 8, "rdx", CPU, RegisterFlag.Byte);
41 public static final CiRegister rbx = new CiRegister(3, 3, 8, "rbx", CPU, RegisterFlag.Byte); 41 public static final Register rbx = new Register(3, 3, 8, "rbx", CPU, RegisterFlag.Byte);
42 public static final CiRegister rsp = new CiRegister(4, 4, 8, "rsp", CPU, RegisterFlag.Byte); 42 public static final Register rsp = new Register(4, 4, 8, "rsp", CPU, RegisterFlag.Byte);
43 public static final CiRegister rbp = new CiRegister(5, 5, 8, "rbp", CPU, RegisterFlag.Byte); 43 public static final Register rbp = new Register(5, 5, 8, "rbp", CPU, RegisterFlag.Byte);
44 public static final CiRegister rsi = new CiRegister(6, 6, 8, "rsi", CPU, RegisterFlag.Byte); 44 public static final Register rsi = new Register(6, 6, 8, "rsi", CPU, RegisterFlag.Byte);
45 public static final CiRegister rdi = new CiRegister(7, 7, 8, "rdi", CPU, RegisterFlag.Byte); 45 public static final Register rdi = new Register(7, 7, 8, "rdi", CPU, RegisterFlag.Byte);
46 46
47 public static final CiRegister r8 = new CiRegister(8, 8, 8, "r8", CPU, RegisterFlag.Byte); 47 public static final Register r8 = new Register(8, 8, 8, "r8", CPU, RegisterFlag.Byte);
48 public static final CiRegister r9 = new CiRegister(9, 9, 8, "r9", CPU, RegisterFlag.Byte); 48 public static final Register r9 = new Register(9, 9, 8, "r9", CPU, RegisterFlag.Byte);
49 public static final CiRegister r10 = new CiRegister(10, 10, 8, "r10", CPU, RegisterFlag.Byte); 49 public static final Register r10 = new Register(10, 10, 8, "r10", CPU, RegisterFlag.Byte);
50 public static final CiRegister r11 = new CiRegister(11, 11, 8, "r11", CPU, RegisterFlag.Byte); 50 public static final Register r11 = new Register(11, 11, 8, "r11", CPU, RegisterFlag.Byte);
51 public static final CiRegister r12 = new CiRegister(12, 12, 8, "r12", CPU, RegisterFlag.Byte); 51 public static final Register r12 = new Register(12, 12, 8, "r12", CPU, RegisterFlag.Byte);
52 public static final CiRegister r13 = new CiRegister(13, 13, 8, "r13", CPU, RegisterFlag.Byte); 52 public static final Register r13 = new Register(13, 13, 8, "r13", CPU, RegisterFlag.Byte);
53 public static final CiRegister r14 = new CiRegister(14, 14, 8, "r14", CPU, RegisterFlag.Byte); 53 public static final Register r14 = new Register(14, 14, 8, "r14", CPU, RegisterFlag.Byte);
54 public static final CiRegister r15 = new CiRegister(15, 15, 8, "r15", CPU, RegisterFlag.Byte); 54 public static final Register r15 = new Register(15, 15, 8, "r15", CPU, RegisterFlag.Byte);
55 55
56 public static final CiRegister[] cpuRegisters = { 56 public static final Register[] cpuRegisters = {
57 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, 57 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi,
58 r8, r9, r10, r11, r12, r13, r14, r15 58 r8, r9, r10, r11, r12, r13, r14, r15
59 }; 59 };
60 60
61 // XMM registers 61 // XMM registers
62 public static final CiRegister xmm0 = new CiRegister(16, 0, 8, "xmm0", FPU); 62 public static final Register xmm0 = new Register(16, 0, 8, "xmm0", FPU);
63 public static final CiRegister xmm1 = new CiRegister(17, 1, 8, "xmm1", FPU); 63 public static final Register xmm1 = new Register(17, 1, 8, "xmm1", FPU);
64 public static final CiRegister xmm2 = new CiRegister(18, 2, 8, "xmm2", FPU); 64 public static final Register xmm2 = new Register(18, 2, 8, "xmm2", FPU);
65 public static final CiRegister xmm3 = new CiRegister(19, 3, 8, "xmm3", FPU); 65 public static final Register xmm3 = new Register(19, 3, 8, "xmm3", FPU);
66 public static final CiRegister xmm4 = new CiRegister(20, 4, 8, "xmm4", FPU); 66 public static final Register xmm4 = new Register(20, 4, 8, "xmm4", FPU);
67 public static final CiRegister xmm5 = new CiRegister(21, 5, 8, "xmm5", FPU); 67 public static final Register xmm5 = new Register(21, 5, 8, "xmm5", FPU);
68 public static final CiRegister xmm6 = new CiRegister(22, 6, 8, "xmm6", FPU); 68 public static final Register xmm6 = new Register(22, 6, 8, "xmm6", FPU);
69 public static final CiRegister xmm7 = new CiRegister(23, 7, 8, "xmm7", FPU); 69 public static final Register xmm7 = new Register(23, 7, 8, "xmm7", FPU);
70 70
71 public static final CiRegister xmm8 = new CiRegister(24, 8, 8, "xmm8", FPU); 71 public static final Register xmm8 = new Register(24, 8, 8, "xmm8", FPU);
72 public static final CiRegister xmm9 = new CiRegister(25, 9, 8, "xmm9", FPU); 72 public static final Register xmm9 = new Register(25, 9, 8, "xmm9", FPU);
73 public static final CiRegister xmm10 = new CiRegister(26, 10, 8, "xmm10", FPU); 73 public static final Register xmm10 = new Register(26, 10, 8, "xmm10", FPU);
74 public static final CiRegister xmm11 = new CiRegister(27, 11, 8, "xmm11", FPU); 74 public static final Register xmm11 = new Register(27, 11, 8, "xmm11", FPU);
75 public static final CiRegister xmm12 = new CiRegister(28, 12, 8, "xmm12", FPU); 75 public static final Register xmm12 = new Register(28, 12, 8, "xmm12", FPU);
76 public static final CiRegister xmm13 = new CiRegister(29, 13, 8, "xmm13", FPU); 76 public static final Register xmm13 = new Register(29, 13, 8, "xmm13", FPU);
77 public static final CiRegister xmm14 = new CiRegister(30, 14, 8, "xmm14", FPU); 77 public static final Register xmm14 = new Register(30, 14, 8, "xmm14", FPU);
78 public static final CiRegister xmm15 = new CiRegister(31, 15, 8, "xmm15", FPU); 78 public static final Register xmm15 = new Register(31, 15, 8, "xmm15", FPU);
79 79
80 public static final CiRegister[] xmmRegisters = { 80 public static final Register[] xmmRegisters = {
81 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, 81 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,
82 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15 82 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15
83 }; 83 };
84 84
85 public static final CiRegister[] cpuxmmRegisters = { 85 public static final Register[] cpuxmmRegisters = {
86 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, 86 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi,
87 r8, r9, r10, r11, r12, r13, r14, r15, 87 r8, r9, r10, r11, r12, r13, r14, r15,
88 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, 88 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,
89 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15 89 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15
90 }; 90 };
91 91
92 /** 92 /**
93 * Register used to construct an instruction-relative address. 93 * Register used to construct an instruction-relative address.
94 */ 94 */
95 public static final CiRegister rip = new CiRegister(32, -1, 0, "rip"); 95 public static final Register rip = new Register(32, -1, 0, "rip");
96 96
97 public static final CiRegister[] allRegisters = { 97 public static final Register[] allRegisters = {
98 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, 98 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi,
99 r8, r9, r10, r11, r12, r13, r14, r15, 99 r8, r9, r10, r11, r12, r13, r14, r15,
100 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, 100 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,
101 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, 101 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,
102 rip 102 rip
103 }; 103 };
104 104
105 public static final CiRegisterValue RSP = rsp.asValue(Long); 105 public static final RegisterValue RSP = rsp.asValue(Long);
106 106
107 public AMD64() { 107 public AMD64() {
108 super("AMD64", 108 super("AMD64",
109 8, 109 8,
110 ByteOrder.LittleEndian, 110 ByteOrder.LittleEndian,