asm.h (785B)
1 #ifndef KIT_ARCH_ARM32_ASM_H 2 #define KIT_ARCH_ARM32_ASM_H 3 4 #include "arch/arch.h" 5 #include "asm/asm_lex.h" 6 #include "core/core.h" 7 8 typedef struct AsmDriver AsmDriver; 9 typedef struct Arm32Asm Arm32Asm; 10 11 enum { 12 ARM32_INLINE_OPK_REG = 0xf0u, 13 ARM32_INLINE_OPCLS_INT = 0u, 14 ARM32_INLINE_OPCLS_FP = 1u, 15 }; 16 17 ArchAsm* arm32_arch_asm_new(Compiler*); 18 19 Arm32Asm* arm32_asm_open(Compiler* c); 20 void arm32_asm_close(Arm32Asm*); 21 void arm32_asm_insn(Arm32Asm*, AsmDriver*, Sym mnemonic); 22 23 void arm32_inline_bind(Arm32Asm*, const AsmConstraint* outs, u32 nout, 24 Operand* out_ops, const AsmConstraint* ins, u32 nin, 25 const Operand* in_ops, const Sym* clobbers, u32 nclob); 26 void arm32_asm_run_template(Arm32Asm*, MCEmitter* mc, const char* tmpl); 27 28 #endif