7 #include "src/arm/constants-arm.h" 13 Float64 Instruction::DoubleImmedVmov()
const {
22 high16 = (Bits(17, 16) << 4) | Bits(3, 0);
23 high16 |= (0xFF * Bit(18)) << 6;
24 high16 |= (Bit(18) ^ 1) << 14;
25 high16 |= Bit(19) << 15;
27 uint64_t imm = high16 << 48;
28 return Float64::FromBits(imm);
34 const char* Registers::names_[kNumRegisters] = {
35 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
36 "r8",
"r9",
"r10",
"fp",
"ip",
"sp",
"lr",
"pc",
41 const Registers::RegisterAlias Registers::aliases_[] = {
42 {10,
"sl"}, {11,
"r11"}, {12,
"r12"}, {13,
"r13"},
43 {14,
"r14"}, {15,
"r15"}, {kNoRegister,
nullptr}};
49 const char* VFPRegisters::names_[kNumVFPRegisters] = {
50 "s0",
"s1",
"s2",
"s3",
"s4",
"s5",
"s6",
"s7",
51 "s8",
"s9",
"s10",
"s11",
"s12",
"s13",
"s14",
"s15",
52 "s16",
"s17",
"s18",
"s19",
"s20",
"s21",
"s22",
"s23",
53 "s24",
"s25",
"s26",
"s27",
"s28",
"s29",
"s30",
"s31",
54 "d0",
"d1",
"d2",
"d3",
"d4",
"d5",
"d6",
"d7",
55 "d8",
"d9",
"d10",
"d11",
"d12",
"d13",
"d14",
"d15",
56 "d16",
"d17",
"d18",
"d19",
"d20",
"d21",
"d22",
"d23",
57 "d24",
"d25",
"d26",
"d27",
"d28",
"d29",
"d30",
"d31" 61 const char* VFPRegisters::Name(
int reg,
bool is_double) {
62 DCHECK((0 <= reg) && (reg < kNumVFPRegisters));
63 return names_[reg + (is_double ? kNumVFPSingleRegisters : 0)];
67 int VFPRegisters::Number(
const char* name,
bool* is_double) {
68 for (
int i = 0;
i < kNumVFPRegisters;
i++) {
69 if (strcmp(names_[
i], name) == 0) {
70 if (
i < kNumVFPSingleRegisters) {
75 return i - kNumVFPSingleRegisters;
85 int Registers::Number(
const char* name) {
87 for (
int i = 0;
i < kNumRegisters;
i++) {
88 if (strcmp(names_[
i], name) == 0) {
95 while (aliases_[
i].reg != kNoRegister) {
96 if (strcmp(aliases_[
i].name, name) == 0) {
97 return aliases_[
i].reg;
110 #endif // V8_TARGET_ARCH_ARM