Commit e6b926f1 authored by sgjesse@chromium.org's avatar sgjesse@chromium.org

Set the svn:eol-style property on new file.

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/201059

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent e5095880
// Copyright 2009 the V8 project authors. All rights reserved. // Copyright 2009 the V8 project authors. All rights reserved.
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are // modification, are permitted provided that the following conditions are
// met: // met:
// //
// * Redistributions of source code must retain the above copyright // * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer. // notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above // * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following // copyright notice, this list of conditions and the following
// disclaimer in the documentation and/or other materials provided // disclaimer in the documentation and/or other materials provided
// with the distribution. // with the distribution.
// * Neither the name of Google Inc. nor the names of its // * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived // contributors may be used to endorse or promote products derived
// from this software without specific prior written permission. // from this software without specific prior written permission.
// //
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "v8.h" #include "v8.h"
#include "constants-arm.h" #include "constants-arm.h"
namespace assembler { namespace assembler {
namespace arm { namespace arm {
namespace v8i = v8::internal; namespace v8i = v8::internal;
// These register names are defined in a way to match the native disassembler // These register names are defined in a way to match the native disassembler
// formatting. See for example the command "objdump -d <binary file>". // formatting. See for example the command "objdump -d <binary file>".
const char* Registers::names_[kNumRegisters] = { const char* Registers::names_[kNumRegisters] = {
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "fp", "ip", "sp", "lr", "pc", "r8", "r9", "r10", "fp", "ip", "sp", "lr", "pc",
}; };
// List of alias names which can be used when referring to ARM registers. // List of alias names which can be used when referring to ARM registers.
const Registers::RegisterAlias Registers::aliases_[] = { const Registers::RegisterAlias Registers::aliases_[] = {
{10, "sl"}, {10, "sl"},
{11, "r11"}, {11, "r11"},
{12, "r12"}, {12, "r12"},
{13, "r13"}, {13, "r13"},
{14, "r14"}, {14, "r14"},
{15, "r15"}, {15, "r15"},
{kNoRegister, NULL} {kNoRegister, NULL}
}; };
const char* Registers::Name(int reg) { const char* Registers::Name(int reg) {
const char* result; const char* result;
if ((0 <= reg) && (reg < kNumRegisters)) { if ((0 <= reg) && (reg < kNumRegisters)) {
result = names_[reg]; result = names_[reg];
} else { } else {
result = "noreg"; result = "noreg";
} }
return result; return result;
} }
int Registers::Number(const char* name) { int Registers::Number(const char* name) {
// Look through the canonical names. // Look through the canonical names.
for (int i = 0; i < kNumRegisters; i++) { for (int i = 0; i < kNumRegisters; i++) {
if (strcmp(names_[i], name) == 0) { if (strcmp(names_[i], name) == 0) {
return i; return i;
} }
} }
// Look through the alias names. // Look through the alias names.
int i = 0; int i = 0;
while (aliases_[i].reg != kNoRegister) { while (aliases_[i].reg != kNoRegister) {
if (strcmp(aliases_[i].name, name) == 0) { if (strcmp(aliases_[i].name, name) == 0) {
return aliases_[i].reg; return aliases_[i].reg;
} }
i++; i++;
} }
// No register with the reguested name found. // No register with the reguested name found.
return kNoRegister; return kNoRegister;
} }
} } // namespace assembler::arm } } // namespace assembler::arm
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment