Chromium Code Reviews| Index: src/arm/assembler-arm.h | 
| =================================================================== | 
| --- src/arm/assembler-arm.h (revision 6414) | 
| +++ src/arm/assembler-arm.h (working copy) | 
| @@ -40,9 +40,12 @@ | 
| #ifndef V8_ARM_ASSEMBLER_ARM_H_ | 
| #define V8_ARM_ASSEMBLER_ARM_H_ | 
| #include <stdio.h> | 
| +#include "constants-arm.h" | 
| 
 
Mads Ager (chromium)
2011/01/20 12:40:00
Can we keep the include list alphabeticed?
 
Alexandre
2011/01/21 16:22:15
Done.
 
 | 
| #include "assembler.h" | 
| #include "serialize.h" | 
| +using namespace assembler::arm; | 
| 
 
Mads Ager (chromium)
2011/01/20 12:40:00
We are not using 'using' directives. Have a look a
 
Alexandre
2011/01/21 16:22:15
Removed. We don't need it anymore as the assembler
 
 | 
| + | 
| namespace v8 { | 
| namespace internal { | 
| @@ -300,19 +303,7 @@ | 
| const DwVfpRegister d14 = { 14 }; | 
| const DwVfpRegister d15 = { 15 }; | 
| -// VFP FPSCR constants. | 
| -static const uint32_t kVFPNConditionFlagBit = 1 << 31; | 
| -static const uint32_t kVFPZConditionFlagBit = 1 << 30; | 
| -static const uint32_t kVFPCConditionFlagBit = 1 << 29; | 
| -static const uint32_t kVFPVConditionFlagBit = 1 << 28; | 
| -static const uint32_t kVFPFlushToZeroMask = 1 << 24; | 
| - | 
| -static const uint32_t kVFPRoundingModeMask = 3 << 22; | 
| -static const uint32_t kVFPRoundToMinusInfinityBits = 2 << 22; | 
| - | 
| -static const uint32_t kVFPExceptionMask = 0xf; | 
| - | 
| // Coprocessor register | 
| struct CRegister { | 
| bool is_valid() const { return 0 <= code_ && code_ < 16; } | 
| @@ -372,150 +363,7 @@ | 
| }; | 
| -// Condition field in instructions. | 
| -enum Condition { | 
| - // any value < 0 is considered no_condition | 
| - no_condition = -1, | 
| - | 
| - eq = 0 << 28, // Z set equal. | 
| - ne = 1 << 28, // Z clear not equal. | 
| - nz = 1 << 28, // Z clear not zero. | 
| - cs = 2 << 28, // C set carry set. | 
| - hs = 2 << 28, // C set unsigned higher or same. | 
| - cc = 3 << 28, // C clear carry clear. | 
| - lo = 3 << 28, // C clear unsigned lower. | 
| - mi = 4 << 28, // N set negative. | 
| - pl = 5 << 28, // N clear positive or zero. | 
| - vs = 6 << 28, // V set overflow. | 
| - vc = 7 << 28, // V clear no overflow. | 
| - hi = 8 << 28, // C set, Z clear unsigned higher. | 
| - ls = 9 << 28, // C clear or Z set unsigned lower or same. | 
| - ge = 10 << 28, // N == V greater or equal. | 
| - lt = 11 << 28, // N != V less than. | 
| - gt = 12 << 28, // Z clear, N == V greater than. | 
| - le = 13 << 28, // Z set or N != V less then or equal | 
| - al = 14 << 28 // always. | 
| -}; | 
| - | 
| - | 
| -// Returns the equivalent of !cc. | 
| -inline Condition NegateCondition(Condition cc) { | 
| - ASSERT(cc != al); | 
| - return static_cast<Condition>(cc ^ ne); | 
| -} | 
| - | 
| - | 
| -// Corresponds to transposing the operands of a comparison. | 
| -inline Condition ReverseCondition(Condition cc) { | 
| - switch (cc) { | 
| - case lo: | 
| - return hi; | 
| - case hi: | 
| - return lo; | 
| - case hs: | 
| - return ls; | 
| - case ls: | 
| - return hs; | 
| - case lt: | 
| - return gt; | 
| - case gt: | 
| - return lt; | 
| - case ge: | 
| - return le; | 
| - case le: | 
| - return ge; | 
| - default: | 
| - return cc; | 
| - }; | 
| -} | 
| - | 
| - | 
| -// Branch hints are not used on the ARM. They are defined so that they can | 
| -// appear in shared function signatures, but will be ignored in ARM | 
| -// implementations. | 
| -enum Hint { no_hint }; | 
| - | 
| -// Hints are not used on the arm. Negating is trivial. | 
| -inline Hint NegateHint(Hint ignored) { return no_hint; } | 
| - | 
| - | 
| // ----------------------------------------------------------------------------- | 
| -// Addressing modes and instruction variants | 
| - | 
| -// Shifter operand shift operation | 
| -enum ShiftOp { | 
| - LSL = 0 << 5, | 
| - LSR = 1 << 5, | 
| - ASR = 2 << 5, | 
| - ROR = 3 << 5, | 
| - RRX = -1 | 
| -}; | 
| - | 
| - | 
| -// Condition code updating mode | 
| -enum SBit { | 
| - SetCC = 1 << 20, // set condition code | 
| - LeaveCC = 0 << 20 // leave condition code unchanged | 
| -}; | 
| - | 
| - | 
| -// Status register selection | 
| -enum SRegister { | 
| - CPSR = 0 << 22, | 
| - SPSR = 1 << 22 | 
| -}; | 
| - | 
| - | 
| -// Status register fields | 
| -enum SRegisterField { | 
| - CPSR_c = CPSR | 1 << 16, | 
| - CPSR_x = CPSR | 1 << 17, | 
| - CPSR_s = CPSR | 1 << 18, | 
| - CPSR_f = CPSR | 1 << 19, | 
| - SPSR_c = SPSR | 1 << 16, | 
| - SPSR_x = SPSR | 1 << 17, | 
| - SPSR_s = SPSR | 1 << 18, | 
| - SPSR_f = SPSR | 1 << 19 | 
| -}; | 
| - | 
| -// Status register field mask (or'ed SRegisterField enum values) | 
| -typedef uint32_t SRegisterFieldMask; | 
| - | 
| - | 
| -// Memory operand addressing mode | 
| -enum AddrMode { | 
| - // bit encoding P U W | 
| - Offset = (8|4|0) << 21, // offset (without writeback to base) | 
| - PreIndex = (8|4|1) << 21, // pre-indexed addressing with writeback | 
| - PostIndex = (0|4|0) << 21, // post-indexed addressing with writeback | 
| - NegOffset = (8|0|0) << 21, // negative offset (without writeback to base) | 
| - NegPreIndex = (8|0|1) << 21, // negative pre-indexed with writeback | 
| - NegPostIndex = (0|0|0) << 21 // negative post-indexed with writeback | 
| -}; | 
| - | 
| - | 
| -// Load/store multiple addressing mode | 
| -enum BlockAddrMode { | 
| - // bit encoding P U W | 
| - da = (0|0|0) << 21, // decrement after | 
| - ia = (0|4|0) << 21, // increment after | 
| - db = (8|0|0) << 21, // decrement before | 
| - ib = (8|4|0) << 21, // increment before | 
| - da_w = (0|0|1) << 21, // decrement after with writeback to base | 
| - ia_w = (0|4|1) << 21, // increment after with writeback to base | 
| - db_w = (8|0|1) << 21, // decrement before with writeback to base | 
| - ib_w = (8|4|1) << 21 // increment before with writeback to base | 
| -}; | 
| - | 
| - | 
| -// Coprocessor load/store operand size | 
| -enum LFlag { | 
| - Long = 1 << 22, // long load/store coprocessor | 
| - Short = 0 << 22 // short load/store coprocessor | 
| -}; | 
| - | 
| - | 
| -// ----------------------------------------------------------------------------- | 
| // Machine instruction Operands | 
| // Class Operand represents a shifter operand in data processing instructions | 
| @@ -658,9 +506,6 @@ | 
| }; | 
| -typedef int32_t Instr; | 
| - | 
| - | 
| extern const Instr kMovLrPc; | 
| extern const Instr kLdrPCMask; | 
| extern const Instr kLdrPCPattern; | 
| @@ -680,15 +525,11 @@ | 
| extern const Instr kCmpCmnMask; | 
| extern const Instr kCmpCmnPattern; | 
| extern const Instr kCmpCmnFlip; | 
| - | 
| -extern const Instr kALUMask; | 
| -extern const Instr kAddPattern; | 
| -extern const Instr kSubPattern; | 
| -extern const Instr kAndPattern; | 
| -extern const Instr kBicPattern; | 
| extern const Instr kAddSubFlip; | 
| extern const Instr kAndBicFlip; | 
| + | 
| + | 
| class Assembler : public Malloced { | 
| public: | 
| // Create an assembler. Instructions and relocation information are emitted | 
| @@ -1001,7 +842,6 @@ | 
| void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al); | 
| // Exception-generating instructions and debugging support | 
| - static const int kDefaultStopCode = -1; | 
| void stop(const char* msg, | 
| Condition cond = al, | 
| int32_t code = kDefaultStopCode); |