| Index: src/arm/assembler-arm.h
|
| ===================================================================
|
| --- src/arm/assembler-arm.h (revision 14076)
|
| +++ src/arm/assembler-arm.h (working copy)
|
| @@ -440,7 +440,22 @@
|
| p15 = 15
|
| };
|
|
|
| +enum NeonElementIndex {
|
| + element_0 = 0,
|
| + element_1 = 1,
|
| + element_2 = 2,
|
| + element_3 = 3,
|
| + element_4 = 4,
|
| + element_5 = 5,
|
| + element_6 = 6,
|
| + element_7 = 7
|
| +};
|
|
|
| +enum NeonWritebackType {
|
| + Writeback = 0,
|
| + NoWriteback = 1
|
| +};
|
| +
|
| // -----------------------------------------------------------------------------
|
| // Machine instruction Operands
|
|
|
| @@ -895,6 +910,10 @@
|
| void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond = al);
|
| void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al);
|
|
|
| + // Prefetch instructions.
|
| + void pld(Register base, int offset = 0);
|
| + void pldw(Register base, int offset = 0);
|
| +
|
| // Exception-generating instructions and debugging support
|
| void stop(const char* msg,
|
| Condition cond = al,
|
| @@ -1098,6 +1117,56 @@
|
| const DwVfpRegister src,
|
| const Condition cond = al);
|
|
|
| + // NEON instructions
|
| + void vld1(int size,
|
| + const Register base,
|
| + const DwVfpRegister first,
|
| + const DwVfpRegister last,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vld1(int size,
|
| + const Register base,
|
| + const DwVfpRegister first,
|
| + NeonElementIndex element_index,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vld4(int size,
|
| + const Register src,
|
| + const DwVfpRegister first,
|
| + const DwVfpRegister last,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vld4(int size,
|
| + const Register src,
|
| + const DwVfpRegister first,
|
| + NeonElementIndex element_index,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vst1(int size,
|
| + const Register base,
|
| + const DwVfpRegister first,
|
| + const DwVfpRegister last,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vst1(int size,
|
| + const Register base,
|
| + const DwVfpRegister first,
|
| + NeonElementIndex element_index,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vst4(int size,
|
| + const Register src,
|
| + const DwVfpRegister first,
|
| + const DwVfpRegister last,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| + void vst4(int size,
|
| + const Register src,
|
| + const DwVfpRegister first,
|
| + NeonElementIndex element_index,
|
| + NeonWritebackType writeback = NoWriteback,
|
| + int align_bytes = 1);
|
| +
|
| // Pseudo instructions
|
|
|
| // Different nop operations are used by the code generator to detect certain
|
|
|