summaryrefslogtreecommitdiff
path: root/orc/orcarm.c
diff options
context:
space:
mode:
Diffstat (limited to 'orc/orcarm.c')
-rw-r--r--orc/orcarm.c309
1 files changed, 144 insertions, 165 deletions
diff --git a/orc/orcarm.c b/orc/orcarm.c
index bfdc246..ad8a638 100644
--- a/orc/orcarm.c
+++ b/orc/orcarm.c
@@ -30,7 +30,7 @@ orc_arm_cond_name (OrcArmCond cond)
if (cond < 0 || cond >= 16) {
return "ERROR";
}
- return cond_names[cond&0xf];
+ return cond_names[cond & 0xf];
}
const char *
@@ -41,91 +41,93 @@ orc_arm_reg_name (int reg)
"a1", "a2", "a3", "a4",
"v1", "v2", "v3", "v4",
"v5", "v6", "v7", "v8",
- "ip", "sp", "lr", "pc" };
+ "ip", "sp", "lr", "pc"
+ };
#else
static const char *gp_regs[] = {
"r0", "r1", "r2", "r3",
"r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11",
- "ip", "sp", "lr", "pc" };
- //"r12", "r13", "r14", "r15" };
+ "ip", "sp", "lr", "pc"
+ };
+ //"r12", "r13", "r14", "r15" };
#endif
- if (reg < ORC_GP_REG_BASE || reg >= ORC_GP_REG_BASE+16) {
+ if (reg < ORC_GP_REG_BASE || reg >= ORC_GP_REG_BASE + 16) {
return "ERROR";
}
- return gp_regs[reg&0xf];
+ return gp_regs[reg & 0xf];
}
void
-orc_arm_emit (OrcCompiler *compiler, orc_uint32 insn)
+orc_arm_emit (OrcCompiler * compiler, orc_uint32 insn)
{
ORC_WRITE_UINT32_LE (compiler->codeptr, insn);
- compiler->codeptr+=4;
+ compiler->codeptr += 4;
}
void
-orc_arm_emit_bx_lr (OrcCompiler *compiler)
+orc_arm_emit_bx_lr (OrcCompiler * compiler)
{
- ORC_ASM_CODE(compiler," bx lr\n");
+ ORC_ASM_CODE (compiler, " bx lr\n");
orc_arm_emit (compiler, 0xe12fff1e);
}
void
-orc_arm_emit_push (OrcCompiler *compiler, int regs)
+orc_arm_emit_push (OrcCompiler * compiler, int regs)
{
int i;
int x = 0;
- ORC_ASM_CODE(compiler," push {");
- for(i=0;i<16;i++){
- if (regs & (1<<i)) {
- x |= (1<<i);
- ORC_ASM_CODE(compiler,"r%d", i);
+ ORC_ASM_CODE (compiler, " push {");
+ for (i = 0; i < 16; i++) {
+ if (regs & (1 << i)) {
+ x |= (1 << i);
+ ORC_ASM_CODE (compiler, "r%d", i);
if (x != regs) {
- ORC_ASM_CODE(compiler,", ");
+ ORC_ASM_CODE (compiler, ", ");
}
}
}
- ORC_ASM_CODE(compiler,"}\n");
+ ORC_ASM_CODE (compiler, "}\n");
orc_arm_emit (compiler, 0xe92d0000 | regs);
}
void
-orc_arm_emit_pop (OrcCompiler *compiler, int regs)
+orc_arm_emit_pop (OrcCompiler * compiler, int regs)
{
int i;
int x = 0;
- ORC_ASM_CODE(compiler," pop {");
- for(i=0;i<16;i++){
- if (regs & (1<<i)) {
- x |= (1<<i);
- ORC_ASM_CODE(compiler,"r%d", i);
+ ORC_ASM_CODE (compiler, " pop {");
+ for (i = 0; i < 16; i++) {
+ if (regs & (1 << i)) {
+ x |= (1 << i);
+ ORC_ASM_CODE (compiler, "r%d", i);
if (x != regs) {
- ORC_ASM_CODE(compiler,", ");
+ ORC_ASM_CODE (compiler, ", ");
}
}
}
- ORC_ASM_CODE(compiler,"}\n");
+ ORC_ASM_CODE (compiler, "}\n");
orc_arm_emit (compiler, 0xe8bd0000 | regs);
}
void
-orc_arm_emit_label (OrcCompiler *compiler, int label)
+orc_arm_emit_label (OrcCompiler * compiler, int label)
{
ORC_ASSERT (label < ORC_N_LABELS);
- ORC_ASM_CODE(compiler,".L%d:\n", label);
+ ORC_ASM_CODE (compiler, ".L%d:\n", label);
compiler->labels[label] = compiler->codeptr;
}
void
-orc_arm_add_fixup (OrcCompiler *compiler, int label, int type)
+orc_arm_add_fixup (OrcCompiler * compiler, int label, int type)
{
ORC_ASSERT (compiler->n_fixups < ORC_N_FIXUPS);
@@ -136,10 +138,10 @@ orc_arm_add_fixup (OrcCompiler *compiler, int label, int type)
}
void
-orc_arm_do_fixups (OrcCompiler *compiler)
+orc_arm_do_fixups (OrcCompiler * compiler)
{
int i;
- for(i=0;i<compiler->n_fixups;i++){
+ for (i = 0; i < compiler->n_fixups; i++) {
unsigned char *label = compiler->labels[compiler->fixups[i].label];
unsigned char *ptr = compiler->fixups[i].ptr;
orc_uint32 code;
@@ -150,10 +152,10 @@ orc_arm_do_fixups (OrcCompiler *compiler)
diff = code;
diff = (diff << 8) >> 8;
diff += ((label - ptr) >> 2);
- if (diff != (diff << 8)>>8) {
- ORC_COMPILER_ERROR(compiler, "fixup out of range");
+ if (diff != (diff << 8) >> 8) {
+ ORC_COMPILER_ERROR (compiler, "fixup out of range");
}
- ORC_WRITE_UINT32_LE(ptr, (code&0xff000000) | (diff&0x00ffffff));
+ ORC_WRITE_UINT32_LE (ptr, (code & 0xff000000) | (diff & 0x00ffffff));
} else {
code = ORC_READ_UINT32_LE (ptr);
diff = code;
@@ -162,47 +164,47 @@ orc_arm_do_fixups (OrcCompiler *compiler)
diff = (diff << 24) >> 24;
diff += ((label - ptr) >> 2);
if (diff != (diff & 0xff)) {
- ORC_COMPILER_ERROR(compiler, "fixup out of range (%d > 255)", diff);
+ ORC_COMPILER_ERROR (compiler, "fixup out of range (%d > 255)", diff);
}
- ORC_WRITE_UINT32_LE(ptr, (code&0xffffff00) | (diff&0x000000ff));
+ ORC_WRITE_UINT32_LE (ptr, (code & 0xffffff00) | (diff & 0x000000ff));
}
}
}
void
-orc_arm_emit_align (OrcCompiler *compiler, int align_shift)
+orc_arm_emit_align (OrcCompiler * compiler, int align_shift)
{
int diff;
- diff = (compiler->code - compiler->codeptr)&((1<<align_shift) - 1);
+ diff = (compiler->code - compiler->codeptr) & ((1 << align_shift) - 1);
while (diff) {
orc_arm_emit_nop (compiler);
- diff-=4;
+ diff -= 4;
}
}
void
-orc_arm_emit_nop (OrcCompiler *compiler)
+orc_arm_emit_nop (OrcCompiler * compiler)
{
- ORC_ASM_CODE(compiler," nop\n");
+ ORC_ASM_CODE (compiler, " nop\n");
orc_arm_emit (compiler, 0xe1a00000);
}
void
-orc_arm_emit_branch (OrcCompiler *compiler, int cond, int label)
+orc_arm_emit_branch (OrcCompiler * compiler, int cond, int label)
{
orc_uint32 code;
code = 0x0afffffe;
- code |= (cond&0xf) << 28;
+ code |= (cond & 0xf) << 28;
orc_arm_add_fixup (compiler, label, 0);
orc_arm_emit (compiler, code);
- ORC_ASM_CODE(compiler," b%s .L%d\n", orc_arm_cond_name(cond), label);
+ ORC_ASM_CODE (compiler, " b%s .L%d\n", orc_arm_cond_name (cond), label);
}
void
-orc_arm_emit_load_imm (OrcCompiler *compiler, int dest, int imm)
+orc_arm_emit_load_imm (OrcCompiler * compiler, int dest, int imm)
{
orc_uint32 code;
int shift2;
@@ -219,21 +221,21 @@ orc_arm_emit_load_imm (OrcCompiler *compiler, int dest, int imm)
shift2++;
}
if (x > 0xff) {
- ORC_PROGRAM_ERROR(compiler, "bad immediate value");
+ ORC_PROGRAM_ERROR (compiler, "bad immediate value");
}
}
code = 0xe3a00000;
- code |= (dest&0xf) << 12;
- code |= (((16-shift2)&0xf) << 8);
- code |= (x&0xff);
+ code |= (dest & 0xf) << 12;
+ code |= (((16 - shift2) & 0xf) << 8);
+ code |= (x & 0xff);
- ORC_ASM_CODE(compiler," mov %s, #0x%08x\n", orc_arm_reg_name (dest), imm);
+ ORC_ASM_CODE (compiler, " mov %s, #0x%08x\n", orc_arm_reg_name (dest), imm);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_add_imm (OrcCompiler *compiler, int dest, int src1, int imm)
+orc_arm_emit_add_imm (OrcCompiler * compiler, int dest, int src1, int imm)
{
orc_uint32 code;
int shift2;
@@ -250,153 +252,145 @@ orc_arm_emit_add_imm (OrcCompiler *compiler, int dest, int src1, int imm)
shift2++;
}
if (x > 0xff) {
- ORC_PROGRAM_ERROR(compiler, "bad immediate value");
+ ORC_PROGRAM_ERROR (compiler, "bad immediate value");
}
}
code = 0xe2800000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= (((16-shift2)&0xf) << 8);
- code |= (x&0xff);
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= (((16 - shift2) & 0xf) << 8);
+ code |= (x & 0xff);
- ORC_ASM_CODE(compiler," add %s, %s, #0x%08x\n", orc_arm_reg_name (dest),
- orc_arm_reg_name(src1), imm);
+ ORC_ASM_CODE (compiler, " add %s, %s, #0x%08x\n", orc_arm_reg_name (dest),
+ orc_arm_reg_name (src1), imm);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_and_imm (OrcCompiler *compiler, int dest, int src1, int value)
+orc_arm_emit_and_imm (OrcCompiler * compiler, int dest, int src1, int value)
{
orc_uint32 code;
code = 0xe2000000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
code |= (value) << 0;
- ORC_ASM_CODE(compiler," and %s, %s, #%d\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1),
- value);
+ ORC_ASM_CODE (compiler, " and %s, %s, #%d\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), value);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_cmp (OrcCompiler *compiler, int src1, int src2)
+orc_arm_emit_cmp (OrcCompiler * compiler, int src1, int src2)
{
orc_uint32 code;
code = 0xe1500000;
- code |= (src1&0xf) << 16;
- code |= (src2&0xf) << 0;
+ code |= (src1 & 0xf) << 16;
+ code |= (src2 & 0xf) << 0;
- ORC_ASM_CODE(compiler," cmp %s, %s\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (src2));
+ ORC_ASM_CODE (compiler, " cmp %s, %s\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (src2));
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_asr_imm (OrcCompiler *compiler, int dest, int src1, int value)
+orc_arm_emit_asr_imm (OrcCompiler * compiler, int dest, int src1, int value)
{
orc_uint32 code;
if (value == 0) {
- ORC_ERROR("bad immediate value");
+ ORC_ERROR ("bad immediate value");
}
code = 0xe1a00040;
- code |= (src1&0xf) << 0;
- code |= (dest&0xf) << 12;
+ code |= (src1 & 0xf) << 0;
+ code |= (dest & 0xf) << 12;
code |= (value) << 7;
- ORC_ASM_CODE(compiler," asr %s, %s, #%d\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1),
- value);
+ ORC_ASM_CODE (compiler, " asr %s, %s, #%d\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), value);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_lsl_imm (OrcCompiler *compiler, int dest, int src1, int value)
+orc_arm_emit_lsl_imm (OrcCompiler * compiler, int dest, int src1, int value)
{
orc_uint32 code;
if (value == 0) {
- ORC_ERROR("bad immediate value");
+ ORC_ERROR ("bad immediate value");
}
code = 0xe1a00000;
- code |= (src1&0xf) << 0;
- code |= (dest&0xf) << 12;
+ code |= (src1 & 0xf) << 0;
+ code |= (dest & 0xf) << 12;
code |= (value) << 7;
- ORC_ASM_CODE(compiler," lsl %s, %s, #%d\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1),
- value);
+ ORC_ASM_CODE (compiler, " lsl %s, %s, #%d\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), value);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_load_reg (OrcCompiler *compiler, int dest, int src1, int offset)
+orc_arm_emit_load_reg (OrcCompiler * compiler, int dest, int src1, int offset)
{
orc_uint32 code;
code = 0xe5900000;
- code |= (src1&0xf) << 16;
- code |= (dest&0xf) << 12;
- code |= offset&0xfff;
+ code |= (src1 & 0xf) << 16;
+ code |= (dest & 0xf) << 12;
+ code |= offset & 0xfff;
- ORC_ASM_CODE(compiler," ldr %s, [%s, #%d]\n",
- orc_arm_reg_name (dest),
- orc_arm_reg_name (src1), offset);
+ ORC_ASM_CODE (compiler, " ldr %s, [%s, #%d]\n",
+ orc_arm_reg_name (dest), orc_arm_reg_name (src1), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_store_reg (OrcCompiler *compiler, int src1, int dest, int offset)
+orc_arm_emit_store_reg (OrcCompiler * compiler, int src1, int dest, int offset)
{
orc_uint32 code;
code = 0xe5800000;
- code |= (dest&0xf) << 16;
- code |= (src1&0xf) << 12;
- code |= offset&0xfff;
+ code |= (dest & 0xf) << 16;
+ code |= (src1 & 0xf) << 12;
+ code |= offset & 0xfff;
- ORC_ASM_CODE(compiler," str %s, [%s, #%d]\n",
- orc_arm_reg_name (src1),
- orc_arm_reg_name (dest), offset);
+ ORC_ASM_CODE (compiler, " str %s, [%s, #%d]\n",
+ orc_arm_reg_name (src1), orc_arm_reg_name (dest), offset);
orc_arm_emit (compiler, code);
}
void
-orc_arm_emit_mov (OrcCompiler *compiler, int dest, int src)
+orc_arm_emit_mov (OrcCompiler * compiler, int dest, int src)
{
- if (dest == src) return;
- orc_arm_emit_mov_r(compiler, ORC_ARM_COND_AL, 0, dest, src);
+ if (dest == src)
+ return;
+ orc_arm_emit_mov_r (compiler, ORC_ARM_COND_AL, 0, dest, src);
}
void
-orc_arm_emit_sub (OrcCompiler *compiler, int dest, int src1, int src2)
+orc_arm_emit_sub (OrcCompiler * compiler, int dest, int src1, int src2)
{
orc_arm_emit_sub_r (compiler, ORC_ARM_COND_AL, 0, dest, src1, src2);
}
void
-orc_arm_emit_sub_imm (OrcCompiler *compiler, int dest, int src1, int value,
+orc_arm_emit_sub_imm (OrcCompiler * compiler, int dest, int src1, int value,
int record)
{
orc_arm_emit_sub_i (compiler, ORC_ARM_COND_AL, record, dest, src1, value);
}
void
-orc_arm_emit_add (OrcCompiler *compiler, int dest, int src1, int src2)
+orc_arm_emit_add (OrcCompiler * compiler, int dest, int src1, int src2)
{
orc_arm_emit_add_r (compiler, ORC_ARM_COND_AL, 0, dest, src1, src2);
}
void
-orc_arm_emit_cmp_imm (OrcCompiler *compiler, int src1, int value)
+orc_arm_emit_cmp_imm (OrcCompiler * compiler, int src1, int value)
{
orc_arm_emit_cmp_i (compiler, ORC_ARM_COND_AL, src1, value);
}
@@ -447,7 +441,7 @@ orc_arm_emit_cmp_imm (OrcCompiler *compiler, int src1, int value)
* type 4: <op>{<cond>}{s} {<Rd>,} <Rn>, <Rm>, RRX
*/
void
-orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
+orc_arm_emit_dp (OrcCompiler * p, int type, OrcArmCond cond, OrcArmDP opcode,
int S, int Rd, int Rn, int Rm, int shift, orc_uint32 val)
{
orc_uint32 code;
@@ -482,7 +476,7 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
shift++;
}
if (shift > 15) {
- ORC_COMPILER_ERROR(p,"invalid ARM immediate %08x", val);
+ ORC_COMPILER_ERROR (p, "invalid ARM immediate %08x", val);
return;
}
shifter_op = arm_so_i (shift, imm);
@@ -496,24 +490,23 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
break;
case 2:
/* <Rm>, [LSL|LSR|ASR] #imm */
- shifter_op = arm_so_rsi (val,shift,Rm);
+ shifter_op = arm_so_rsi (val, shift, Rm);
sprintf (shifter, "%s, %s #%d",
orc_arm_reg_name (Rm), shift_names[shift], val);
break;
case 3:
/* <Rm>, [LSL|LSR|ASR] <Rs> */
- shifter_op = arm_so_rsr (val,shift,Rm);
+ shifter_op = arm_so_rsr (val, shift, Rm);
sprintf (shifter, "%s, %s %s",
orc_arm_reg_name (Rm), shift_names[shift], orc_arm_reg_name (val));
break;
case 4:
/* <Rm>, RRX */
shifter_op = arm_so_rrx (Rm);
- sprintf (shifter, "%s, RRX",
- orc_arm_reg_name (Rm));
+ sprintf (shifter, "%s, RRX", orc_arm_reg_name (Rm));
break;
default:
- ORC_COMPILER_ERROR(p,"unknown data processing type %d", type);
+ ORC_COMPILER_ERROR (p, "unknown data processing type %d", type);
return;
}
@@ -521,21 +514,22 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
if (op_Rn[opcode]) {
/* opcode using Rn */
code = arm_code_dp (cond, I, opcode, S, Rn, Rd, shifter_op);
- ORC_ASM_CODE(p," %s%s%s %s, %s, %s\n",
- dp_insn_names[opcode], orc_arm_cond_name(cond), (S ? "s" : ""),
+ ORC_ASM_CODE (p, " %s%s%s %s, %s, %s\n",
+ dp_insn_names[opcode], orc_arm_cond_name (cond), (S ? "s" : ""),
orc_arm_reg_name (Rd), orc_arm_reg_name (Rn), shifter);
} else {
/* opcode using Rd and val (mov, mvn) */
code = arm_code_dp (cond, I, opcode, S, Rn, Rd, shifter_op);
- ORC_ASM_CODE(p," %s%s%s %s, %s\n",
- dp_insn_names[opcode], orc_arm_cond_name(cond), (S ? "s" : ""),
+ ORC_ASM_CODE (p, " %s%s%s %s, %s\n",
+ dp_insn_names[opcode], orc_arm_cond_name (cond), (S ? "s" : ""),
orc_arm_reg_name (Rd), shifter);
}
} else {
/* opcode does not change Rd, change status register (cmp, tst, ..) */
code = arm_code_dp (cond, I, opcode, 1, Rn, 0, shifter_op);
- ORC_ASM_CODE(p," %s%s %s, %s\n",
- dp_insn_names[opcode], orc_arm_cond_name(cond), orc_arm_reg_name (Rn), shifter);
+ ORC_ASM_CODE (p, " %s%s %s, %s\n",
+ dp_insn_names[opcode], orc_arm_cond_name (cond), orc_arm_reg_name (Rn),
+ shifter);
}
orc_arm_emit (p, code);
}
@@ -550,7 +544,7 @@ orc_arm_emit_dp (OrcCompiler *p, int type, OrcArmCond cond, OrcArmDP opcode,
#define arm_code_par(cond,mode,Rn,Rd,op,Rm) (((cond)<<28)|((mode)<<20)|(((Rn)&0xf)<<16)|(((Rd)&0xf)<<12)|((op)<<4)|((Rm)&0xf)|0xf00)
void
-orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
+orc_arm_emit_par (OrcCompiler * p, int op, int mode, OrcArmCond cond,
int Rd, int Rn, int Rm)
{
orc_uint32 code;
@@ -576,11 +570,9 @@ orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
Rn = Rm;
Rm = tmp;
}
- ORC_ASM_CODE(p," %s%s%s %s, %s, %s\n",
- par_mode_names[mode], par_op_names[op], orc_arm_cond_name(cond),
- orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rn),
- orc_arm_reg_name (Rm));
+ ORC_ASM_CODE (p, " %s%s%s %s, %s, %s\n",
+ par_mode_names[mode], par_op_names[op], orc_arm_cond_name (cond),
+ orc_arm_reg_name (Rd), orc_arm_reg_name (Rn), orc_arm_reg_name (Rm));
orc_arm_emit (p, code);
}
@@ -594,8 +586,8 @@ orc_arm_emit_par (OrcCompiler *p, int op, int mode, OrcArmCond cond,
#define arm_code_xt(op,cond,Rn,Rd,r8,Rm) (op|((cond)<<28)|(((Rn)&0xf)<<16)|(((Rd)&0xf)<<12)|((((r8)&0xf)&0x18)<<7)|((Rm)&0xf))
void
-orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond,
- int Rd, int Rn, int Rm, int r8)
+orc_arm_emit_xt (OrcCompiler * p, int op, OrcArmCond cond,
+ int Rd, int Rn, int Rm, int r8)
{
orc_uint32 code;
char shifter[64];
@@ -615,25 +607,21 @@ orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond,
code = arm_code_xt (xt_opcodes[op], cond, Rn, Rd, r8, Rm);
if (Rn < 15) {
/* with Rn */
- ORC_ASM_CODE(p," %s%s %s, %s, %s%s\n",
- xt_insn_names[op], orc_arm_cond_name(cond),
+ ORC_ASM_CODE (p, " %s%s %s, %s, %s%s\n",
+ xt_insn_names[op], orc_arm_cond_name (cond),
orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rn),
- orc_arm_reg_name (Rm),
- shifter);
+ orc_arm_reg_name (Rn), orc_arm_reg_name (Rm), shifter);
} else {
- ORC_ASM_CODE(p," %s%s %s, %s%s\n",
- xt_insn_names[op], orc_arm_cond_name(cond),
- orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rm),
- shifter);
+ ORC_ASM_CODE (p, " %s%s %s, %s%s\n",
+ xt_insn_names[op], orc_arm_cond_name (cond),
+ orc_arm_reg_name (Rd), orc_arm_reg_name (Rm), shifter);
}
orc_arm_emit (p, code);
}
#define arm_code_pkh(op,cond,Rn,Rd,sh,Rm) (op|((cond)<<28)|(((Rn)&0xf)<<16)|(((Rd)&0xf)<<12)|((sh)<<7)|((Rm)&0xf))
void
-orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
+orc_arm_emit_pkh (OrcCompiler * p, int op, OrcArmCond cond,
int Rd, int Rn, int Rm, int sh)
{
orc_uint32 code;
@@ -642,19 +630,16 @@ orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
static const char *pkh_insn_names[] = { "pkhbt", "pkhtb" };
if (sh > 0) {
- sprintf (shifter, ", %s #%d",
- (op == 0 ? "LSL" : "ASR"), sh);
+ sprintf (shifter, ", %s #%d", (op == 0 ? "LSL" : "ASR"), sh);
} else {
shifter[0] = '\0';
}
code = arm_code_pkh (pkh_opcodes[op], cond, Rn, Rd, sh, Rm);
- ORC_ASM_CODE(p," %s%s %s, %s, %s%s\n",
- pkh_insn_names[op], orc_arm_cond_name(cond),
+ ORC_ASM_CODE (p, " %s%s %s, %s, %s%s\n",
+ pkh_insn_names[op], orc_arm_cond_name (cond),
orc_arm_reg_name (Rd),
- orc_arm_reg_name (Rn),
- orc_arm_reg_name (Rm),
- shifter);
+ orc_arm_reg_name (Rn), orc_arm_reg_name (Rm), shifter);
orc_arm_emit (p, code);
}
@@ -669,8 +654,8 @@ orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
(((Rd)&15)<<12)|(((sh)&31)<<7)|(((a)&1)<<6)|\
((Rm)&15))
void
-orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
- int Rd, int sat, int Rm, int sh, int asr)
+orc_arm_emit_sat (OrcCompiler * p, int op, OrcArmCond cond,
+ int Rd, int sat, int Rm, int sh, int asr)
{
orc_uint32 code;
char shifter[64];
@@ -680,8 +665,7 @@ orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
static const int par_op[] = { 0, 0, 3, 3 };
if (sh > 0) {
- sprintf (shifter, ", %s #%d",
- (asr&1 ? "ASR" : "LSL"), sh);
+ sprintf (shifter, ", %s #%d", (asr & 1 ? "ASR" : "LSL"), sh);
} else {
shifter[0] = '\0';
}
@@ -695,33 +679,29 @@ orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
code = arm_code_par (cond, par_mode[op], sat - 1, Rd, par_op[op], Rm);
}
}
- ORC_ASM_CODE(p," %s%s %s, #%d, %s%s\n",
- sat_insn_names[op], orc_arm_cond_name(cond),
- orc_arm_reg_name (Rd),
- sat,
- orc_arm_reg_name (Rm),
- shifter);
+ ORC_ASM_CODE (p, " %s%s %s, #%d, %s%s\n",
+ sat_insn_names[op], orc_arm_cond_name (cond),
+ orc_arm_reg_name (Rd), sat, orc_arm_reg_name (Rm), shifter);
orc_arm_emit (p, code);
}
#define arm_code_rv(op,cond,Rd,Rm) (op|(((cond)&15)<<28)|(((Rd)&15)<<12)|((Rm)&15))
void
-orc_arm_emit_rv (OrcCompiler *p, int op, OrcArmCond cond,
- int Rd, int Rm)
+orc_arm_emit_rv (OrcCompiler * p, int op, OrcArmCond cond, int Rd, int Rm)
{
orc_uint32 code;
static const orc_uint32 rv_opcodes[] = { 0x06bf0f30, 0x06bf0fb0 };
static const char *rv_insn_names[] = { "rev", "rev16" };
code = arm_code_rv (rv_opcodes[op], cond, Rd, Rm);
- ORC_ASM_CODE(p," %s%s %s, %s\n",
- rv_insn_names[op], orc_arm_cond_name(cond),
+ ORC_ASM_CODE (p, " %s%s %s, %s\n",
+ rv_insn_names[op], orc_arm_cond_name (cond),
orc_arm_reg_name (Rd), orc_arm_reg_name (Rm));
orc_arm_emit (p, code);
}
void
-orc_arm_flush_cache (OrcCode *code)
+orc_arm_flush_cache (OrcCode * code)
{
#ifdef HAVE_ARM
__clear_cache (code->code, code->code + code->code_size);
@@ -729,13 +709,12 @@ orc_arm_flush_cache (OrcCode *code)
}
void
-orc_arm_emit_data (OrcCompiler *compiler, orc_uint32 data)
+orc_arm_emit_data (OrcCompiler * compiler, orc_uint32 data)
{
if (compiler->target_flags & ORC_TARGET_CLEAN_COMPILE) {
orc_arm_emit_nop (compiler);
} else {
- ORC_ASM_CODE(compiler," .word 0x%08x\n", data);
+ ORC_ASM_CODE (compiler, " .word 0x%08x\n", data);
orc_arm_emit (compiler, data);
}
}
-