ARM: Orc Reference Manual

## ARM ARM — code generation for ARM |

## Functions

void | orc_arm_do_fixups ()
void | orc_arm_emit ()
void | orc_arm_emit_add ()
void | orc_arm_emit_add_imm ()
void | orc_arm_emit_branch ()
void | orc_arm_emit_bx_lr ()
void | orc_arm_emit_cmp_imm ()
void | orc_arm_emit_label ()
void | orc_arm_emit_load_reg ()
void | orc_arm_emit_mov ()
void | orc_arm_emit_pop ()
void | orc_arm_emit_push ()
void | orc_arm_emit_sub ()
void | orc_arm_emit_sub_imm ()
void | orc_arm_loadw ()
const char * | orc_arm_reg_name ()
void | orc_arm_storew ()

## Types and Values

enum | OrcArmCond
enum | OrcArmDP
enum | OrcArmRegister

## Description

## Functions

### orc_arm_do_fixups ()

    void
    orc_arm_do_fixups (OrcCompiler *compiler);

### orc_arm_emit ()

    void
    orc_arm_emit (OrcCompiler *compiler,
                  orc_uint32 insn);

### orc_arm_emit_add ()

    void
    orc_arm_emit_add (OrcCompiler *compiler,
                      int dest,
                      int src1,
                      int src2);

### orc_arm_emit_add_imm ()

    void
    orc_arm_emit_add_imm (OrcCompiler *compiler,
                          int dest,
                          int src1,
                          int value);

### orc_arm_emit_branch ()

    void
    orc_arm_emit_branch (OrcCompiler *compiler,
                         int cond,
                         int label);

### orc_arm_emit_bx_lr ()

    void
    orc_arm_emit_bx_lr (OrcCompiler *compiler);

### orc_arm_emit_cmp_imm ()

    void
    orc_arm_emit_cmp_imm (OrcCompiler *compiler,
                          int src1,
                          int value);

### orc_arm_emit_label ()

    void
    orc_arm_emit_label (OrcCompiler *compiler,
                        int label);

### orc_arm_emit_load_reg ()

    void
    orc_arm_emit_load_reg (OrcCompiler *compiler,
                           int dest,
                           int src1,
                           int offset);

### orc_arm_emit_mov ()

    void
    orc_arm_emit_mov (OrcCompiler *compiler,
                      int dest,
                      int src);

### orc_arm_emit_pop ()

    void
    orc_arm_emit_pop (OrcCompiler *compiler,
                      int regs,
                      orc_uint32 vregs);

### orc_arm_emit_push ()

    void
    orc_arm_emit_push (OrcCompiler *compiler,
                       int regs,
                       orc_uint32 vregs);

### orc_arm_emit_sub ()

    void
    orc_arm_emit_sub (OrcCompiler *compiler,
                      int dest,
                      int src1,
                      int src2);

### orc_arm_emit_sub_imm ()

    void
    orc_arm_emit_sub_imm (OrcCompiler *compiler,
                          int dest,
                          int src1,
                          int value,
                          int record);

### orc_arm_loadw ()

    void
    orc_arm_loadw (OrcCompiler *compiler,
                   int dest,
                   int src1,
                   int offset);

### orc_arm_reg_name ()

    const char *
    orc_arm_reg_name (int reg);

### orc_arm_storew ()

    void
    orc_arm_storew (OrcCompiler *compiler,
                    int dest,
                    int offset,
                    int src1);

## Types and Values

### enum OrcArmCond

#### Members

ORC_ARM_COND_EQ |  |
ORC_ARM_COND_NE |  |
ORC_ARM_COND_CS |  |
ORC_ARM_COND_CC |  |
ORC_ARM_COND_MI |  |
ORC_ARM_COND_PL |  |
ORC_ARM_COND_VS |  |
ORC_ARM_COND_VC |  |
ORC_ARM_COND_HI |  |
ORC_ARM_COND_LS |  |
ORC_ARM_COND_GE |  |
ORC_ARM_COND_LT |  |
ORC_ARM_COND_GT |  |
ORC_ARM_COND_LE |  |
ORC_ARM_COND_AL |  |

### enum OrcArmDP

#### Members

ORC_ARM_DP_AND |  |
ORC_ARM_DP_EOR |  |
ORC_ARM_DP_SUB |  |
ORC_ARM_DP_RSB |  |
ORC_ARM_DP_ADD |  |
ORC_ARM_DP_ADC |  |
ORC_ARM_DP_SBC |  |
ORC_ARM_DP_RSC |  |
ORC_ARM_DP_TST |  |
ORC_ARM_DP_TEQ |  |
ORC_ARM_DP_CMP |  |
ORC_ARM_DP_CMN |  |
ORC_ARM_DP_ORR |  |
ORC_ARM_DP_MOV |  |
ORC_ARM_DP_BIC |  |
ORC_ARM_DP_MVN |  |

### enum OrcArmRegister

#### Members

ORC_ARM_A1 |  |
ORC_ARM_A2 |  |
ORC_ARM_A3 |  |
ORC_ARM_A4 |  |
ORC_ARM_V1 |  |
ORC_ARM_V2 |  |
ORC_ARM_V3 |  |
ORC_ARM_V4 |  |
ORC_ARM_V5 |  |
ORC_ARM_V6 |  |
ORC_ARM_V7 |  |
ORC_ARM_V8 |  |
ORC_ARM_IP |  |
ORC_ARM_SP |  |
ORC_ARM_LR |  |
ORC_ARM_PC |  |