Numworks Epsilon  1.4.1
Graphing Calculator Operating System
asmarm.h File Reference
#include "py/misc.h"
#include "py/asmbase.h"

Go to the source code of this file.

Classes

struct  _asm_arm_t
 

Macros

#define ASM_ARM_REG_R0   (0)
 
#define ASM_ARM_REG_R1   (1)
 
#define ASM_ARM_REG_R2   (2)
 
#define ASM_ARM_REG_R3   (3)
 
#define ASM_ARM_REG_R4   (4)
 
#define ASM_ARM_REG_R5   (5)
 
#define ASM_ARM_REG_R6   (6)
 
#define ASM_ARM_REG_R7   (7)
 
#define ASM_ARM_REG_R8   (8)
 
#define ASM_ARM_REG_R9   (9)
 
#define ASM_ARM_REG_R10   (10)
 
#define ASM_ARM_REG_R11   (11)
 
#define ASM_ARM_REG_R12   (12)
 
#define ASM_ARM_REG_R13   (13)
 
#define ASM_ARM_REG_R14   (14)
 
#define ASM_ARM_REG_R15   (15)
 
#define ASM_ARM_REG_SP   (ASM_ARM_REG_R13)
 
#define ASM_ARM_REG_LR   (ASM_ARM_REG_R14)
 
#define ASM_ARM_REG_PC   (ASM_ARM_REG_R15)
 
#define ASM_ARM_CC_EQ   (0x0 << 28)
 
#define ASM_ARM_CC_NE   (0x1 << 28)
 
#define ASM_ARM_CC_CS   (0x2 << 28)
 
#define ASM_ARM_CC_CC   (0x3 << 28)
 
#define ASM_ARM_CC_MI   (0x4 << 28)
 
#define ASM_ARM_CC_PL   (0x5 << 28)
 
#define ASM_ARM_CC_VS   (0x6 << 28)
 
#define ASM_ARM_CC_VC   (0x7 << 28)
 
#define ASM_ARM_CC_HI   (0x8 << 28)
 
#define ASM_ARM_CC_LS   (0x9 << 28)
 
#define ASM_ARM_CC_GE   (0xa << 28)
 
#define ASM_ARM_CC_LT   (0xb << 28)
 
#define ASM_ARM_CC_GT   (0xc << 28)
 
#define ASM_ARM_CC_LE   (0xd << 28)
 
#define ASM_ARM_CC_AL   (0xe << 28)
 

Typedefs

typedef struct _asm_arm_t asm_arm_t
 

Functions

void asm_arm_end_pass (asm_arm_t *as)
 
void asm_arm_entry (asm_arm_t *as, int num_locals)
 
void asm_arm_exit (asm_arm_t *as)
 
void asm_arm_bkpt (asm_arm_t *as)
 
void asm_arm_mov_reg_reg (asm_arm_t *as, uint reg_dest, uint reg_src)
 
void asm_arm_mov_reg_i32 (asm_arm_t *as, uint rd, int imm)
 
void asm_arm_mov_local_reg (asm_arm_t *as, int local_num, uint rd)
 
void asm_arm_mov_reg_local (asm_arm_t *as, uint rd, int local_num)
 
void asm_arm_setcc_reg (asm_arm_t *as, uint rd, uint cond)
 
void asm_arm_cmp_reg_i8 (asm_arm_t *as, uint rd, int imm)
 
void asm_arm_cmp_reg_reg (asm_arm_t *as, uint rd, uint rn)
 
void asm_arm_add_reg_reg_reg (asm_arm_t *as, uint rd, uint rn, uint rm)
 
void asm_arm_sub_reg_reg_reg (asm_arm_t *as, uint rd, uint rn, uint rm)
 
void asm_arm_mul_reg_reg_reg (asm_arm_t *as, uint rd, uint rn, uint rm)
 
void asm_arm_and_reg_reg_reg (asm_arm_t *as, uint rd, uint rn, uint rm)
 
void asm_arm_eor_reg_reg_reg (asm_arm_t *as, uint rd, uint rn, uint rm)
 
void asm_arm_orr_reg_reg_reg (asm_arm_t *as, uint rd, uint rn, uint rm)
 
void asm_arm_mov_reg_local_addr (asm_arm_t *as, uint rd, int local_num)
 
void asm_arm_lsl_reg_reg (asm_arm_t *as, uint rd, uint rs)
 
void asm_arm_asr_reg_reg (asm_arm_t *as, uint rd, uint rs)
 
void asm_arm_ldr_reg_reg (asm_arm_t *as, uint rd, uint rn, uint byte_offset)
 
void asm_arm_ldrh_reg_reg (asm_arm_t *as, uint rd, uint rn)
 
void asm_arm_ldrb_reg_reg (asm_arm_t *as, uint rd, uint rn)
 
void asm_arm_str_reg_reg (asm_arm_t *as, uint rd, uint rm, uint byte_offset)
 
void asm_arm_strh_reg_reg (asm_arm_t *as, uint rd, uint rm)
 
void asm_arm_strb_reg_reg (asm_arm_t *as, uint rd, uint rm)
 
void asm_arm_str_reg_reg_reg (asm_arm_t *as, uint rd, uint rm, uint rn)
 
void asm_arm_strh_reg_reg_reg (asm_arm_t *as, uint rd, uint rm, uint rn)
 
void asm_arm_strb_reg_reg_reg (asm_arm_t *as, uint rd, uint rm, uint rn)
 
void asm_arm_push (asm_arm_t *as, uint reglist)
 
void asm_arm_pop (asm_arm_t *as, uint reglist)
 
void asm_arm_bcc_label (asm_arm_t *as, int cond, uint label)
 
void asm_arm_b_label (asm_arm_t *as, uint label)
 
void asm_arm_bl_ind (asm_arm_t *as, void *fun_ptr, uint fun_id, uint reg_temp)
 

Macro Definition Documentation

◆ ASM_ARM_CC_AL

#define ASM_ARM_CC_AL   (0xe << 28)

Definition at line 67 of file asmarm.h.

◆ ASM_ARM_CC_CC

#define ASM_ARM_CC_CC   (0x3 << 28)

Definition at line 56 of file asmarm.h.

◆ ASM_ARM_CC_CS

#define ASM_ARM_CC_CS   (0x2 << 28)

Definition at line 55 of file asmarm.h.

◆ ASM_ARM_CC_EQ

#define ASM_ARM_CC_EQ   (0x0 << 28)

Definition at line 53 of file asmarm.h.

◆ ASM_ARM_CC_GE

#define ASM_ARM_CC_GE   (0xa << 28)

Definition at line 63 of file asmarm.h.

◆ ASM_ARM_CC_GT

#define ASM_ARM_CC_GT   (0xc << 28)

Definition at line 65 of file asmarm.h.

◆ ASM_ARM_CC_HI

#define ASM_ARM_CC_HI   (0x8 << 28)

Definition at line 61 of file asmarm.h.

◆ ASM_ARM_CC_LE

#define ASM_ARM_CC_LE   (0xd << 28)

Definition at line 66 of file asmarm.h.

◆ ASM_ARM_CC_LS

#define ASM_ARM_CC_LS   (0x9 << 28)

Definition at line 62 of file asmarm.h.

◆ ASM_ARM_CC_LT

#define ASM_ARM_CC_LT   (0xb << 28)

Definition at line 64 of file asmarm.h.

◆ ASM_ARM_CC_MI

#define ASM_ARM_CC_MI   (0x4 << 28)

Definition at line 57 of file asmarm.h.

◆ ASM_ARM_CC_NE

#define ASM_ARM_CC_NE   (0x1 << 28)

Definition at line 54 of file asmarm.h.

◆ ASM_ARM_CC_PL

#define ASM_ARM_CC_PL   (0x5 << 28)

Definition at line 58 of file asmarm.h.

◆ ASM_ARM_CC_VC

#define ASM_ARM_CC_VC   (0x7 << 28)

Definition at line 60 of file asmarm.h.

◆ ASM_ARM_CC_VS

#define ASM_ARM_CC_VS   (0x6 << 28)

Definition at line 59 of file asmarm.h.

◆ ASM_ARM_REG_LR

#define ASM_ARM_REG_LR   (ASM_ARM_REG_R14)

Definition at line 50 of file asmarm.h.

◆ ASM_ARM_REG_PC

#define ASM_ARM_REG_PC   (ASM_ARM_REG_R15)

Definition at line 51 of file asmarm.h.

◆ ASM_ARM_REG_R0

#define ASM_ARM_REG_R0   (0)

Definition at line 33 of file asmarm.h.

◆ ASM_ARM_REG_R1

#define ASM_ARM_REG_R1   (1)

Definition at line 34 of file asmarm.h.

◆ ASM_ARM_REG_R10

#define ASM_ARM_REG_R10   (10)

Definition at line 43 of file asmarm.h.

◆ ASM_ARM_REG_R11

#define ASM_ARM_REG_R11   (11)

Definition at line 44 of file asmarm.h.

◆ ASM_ARM_REG_R12

#define ASM_ARM_REG_R12   (12)

Definition at line 45 of file asmarm.h.

◆ ASM_ARM_REG_R13

#define ASM_ARM_REG_R13   (13)

Definition at line 46 of file asmarm.h.

◆ ASM_ARM_REG_R14

#define ASM_ARM_REG_R14   (14)

Definition at line 47 of file asmarm.h.

◆ ASM_ARM_REG_R15

#define ASM_ARM_REG_R15   (15)

Definition at line 48 of file asmarm.h.

◆ ASM_ARM_REG_R2

#define ASM_ARM_REG_R2   (2)

Definition at line 35 of file asmarm.h.

◆ ASM_ARM_REG_R3

#define ASM_ARM_REG_R3   (3)

Definition at line 36 of file asmarm.h.

◆ ASM_ARM_REG_R4

#define ASM_ARM_REG_R4   (4)

Definition at line 37 of file asmarm.h.

◆ ASM_ARM_REG_R5

#define ASM_ARM_REG_R5   (5)

Definition at line 38 of file asmarm.h.

◆ ASM_ARM_REG_R6

#define ASM_ARM_REG_R6   (6)

Definition at line 39 of file asmarm.h.

◆ ASM_ARM_REG_R7

#define ASM_ARM_REG_R7   (7)

Definition at line 40 of file asmarm.h.

◆ ASM_ARM_REG_R8

#define ASM_ARM_REG_R8   (8)

Definition at line 41 of file asmarm.h.

◆ ASM_ARM_REG_R9

#define ASM_ARM_REG_R9   (9)

Definition at line 42 of file asmarm.h.

◆ ASM_ARM_REG_SP

#define ASM_ARM_REG_SP   (ASM_ARM_REG_R13)

Definition at line 49 of file asmarm.h.

Typedef Documentation

◆ asm_arm_t

typedef struct _asm_arm_t asm_arm_t

Function Documentation

◆ asm_arm_add_reg_reg_reg()

void asm_arm_add_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  rm 
)

◆ asm_arm_and_reg_reg_reg()

void asm_arm_and_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  rm 
)

◆ asm_arm_asr_reg_reg()

void asm_arm_asr_reg_reg ( asm_arm_t as,
uint  rd,
uint  rs 
)

◆ asm_arm_b_label()

void asm_arm_b_label ( asm_arm_t as,
uint  label 
)

◆ asm_arm_bcc_label()

void asm_arm_bcc_label ( asm_arm_t as,
int  cond,
uint  label 
)

◆ asm_arm_bkpt()

void asm_arm_bkpt ( asm_arm_t as)

◆ asm_arm_bl_ind()

void asm_arm_bl_ind ( asm_arm_t as,
void *  fun_ptr,
uint  fun_id,
uint  reg_temp 
)

◆ asm_arm_cmp_reg_i8()

void asm_arm_cmp_reg_i8 ( asm_arm_t as,
uint  rd,
int  imm 
)

◆ asm_arm_cmp_reg_reg()

void asm_arm_cmp_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn 
)

◆ asm_arm_end_pass()

void asm_arm_end_pass ( asm_arm_t as)

◆ asm_arm_entry()

void asm_arm_entry ( asm_arm_t as,
int  num_locals 
)

◆ asm_arm_eor_reg_reg_reg()

void asm_arm_eor_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  rm 
)

◆ asm_arm_exit()

void asm_arm_exit ( asm_arm_t as)

◆ asm_arm_ldr_reg_reg()

void asm_arm_ldr_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  byte_offset 
)

◆ asm_arm_ldrb_reg_reg()

void asm_arm_ldrb_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn 
)

◆ asm_arm_ldrh_reg_reg()

void asm_arm_ldrh_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn 
)

◆ asm_arm_lsl_reg_reg()

void asm_arm_lsl_reg_reg ( asm_arm_t as,
uint  rd,
uint  rs 
)

◆ asm_arm_mov_local_reg()

void asm_arm_mov_local_reg ( asm_arm_t as,
int  local_num,
uint  rd 
)

◆ asm_arm_mov_reg_i32()

void asm_arm_mov_reg_i32 ( asm_arm_t as,
uint  rd,
int  imm 
)

◆ asm_arm_mov_reg_local()

void asm_arm_mov_reg_local ( asm_arm_t as,
uint  rd,
int  local_num 
)

◆ asm_arm_mov_reg_local_addr()

void asm_arm_mov_reg_local_addr ( asm_arm_t as,
uint  rd,
int  local_num 
)

◆ asm_arm_mov_reg_reg()

void asm_arm_mov_reg_reg ( asm_arm_t as,
uint  reg_dest,
uint  reg_src 
)

◆ asm_arm_mul_reg_reg_reg()

void asm_arm_mul_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  rm 
)

◆ asm_arm_orr_reg_reg_reg()

void asm_arm_orr_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  rm 
)

◆ asm_arm_pop()

void asm_arm_pop ( asm_arm_t as,
uint  reglist 
)

◆ asm_arm_push()

void asm_arm_push ( asm_arm_t as,
uint  reglist 
)

◆ asm_arm_setcc_reg()

void asm_arm_setcc_reg ( asm_arm_t as,
uint  rd,
uint  cond 
)

◆ asm_arm_str_reg_reg()

void asm_arm_str_reg_reg ( asm_arm_t as,
uint  rd,
uint  rm,
uint  byte_offset 
)

◆ asm_arm_str_reg_reg_reg()

void asm_arm_str_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rm,
uint  rn 
)

◆ asm_arm_strb_reg_reg()

void asm_arm_strb_reg_reg ( asm_arm_t as,
uint  rd,
uint  rm 
)

◆ asm_arm_strb_reg_reg_reg()

void asm_arm_strb_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rm,
uint  rn 
)

◆ asm_arm_strh_reg_reg()

void asm_arm_strh_reg_reg ( asm_arm_t as,
uint  rd,
uint  rm 
)

◆ asm_arm_strh_reg_reg_reg()

void asm_arm_strh_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rm,
uint  rn 
)

◆ asm_arm_sub_reg_reg_reg()

void asm_arm_sub_reg_reg_reg ( asm_arm_t as,
uint  rd,
uint  rn,
uint  rm 
)