objtool/x86: Reorder ORC register numbering
Reorder the ORC register values so their ordering matches the x86 instruction set register encodings. No functional change intended. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
This commit is contained in:
parent
96f3b16a9d
commit
1735858caa
5 changed files with 58 additions and 49 deletions
|
|
@ -891,14 +891,20 @@ int arch_decode_hint_reg(u8 sp_reg, int *base)
|
|||
case ORC_REG_UNDEFINED:
|
||||
*base = CFI_UNDEFINED;
|
||||
break;
|
||||
case ORC_REG_AX:
|
||||
*base = CFI_AX;
|
||||
break;
|
||||
case ORC_REG_DX:
|
||||
*base = CFI_DX;
|
||||
break;
|
||||
case ORC_REG_SP:
|
||||
*base = CFI_SP;
|
||||
break;
|
||||
case ORC_REG_BP:
|
||||
*base = CFI_BP;
|
||||
break;
|
||||
case ORC_REG_SP_INDIRECT:
|
||||
*base = CFI_SP_INDIRECT;
|
||||
case ORC_REG_DI:
|
||||
*base = CFI_DI;
|
||||
break;
|
||||
case ORC_REG_R10:
|
||||
*base = CFI_R10;
|
||||
|
|
@ -906,14 +912,11 @@ int arch_decode_hint_reg(u8 sp_reg, int *base)
|
|||
case ORC_REG_R13:
|
||||
*base = CFI_R13;
|
||||
break;
|
||||
case ORC_REG_DI:
|
||||
*base = CFI_DI;
|
||||
case ORC_REG_SP_INDIRECT:
|
||||
*base = CFI_SP_INDIRECT;
|
||||
break;
|
||||
case ORC_REG_DX:
|
||||
*base = CFI_DX;
|
||||
break;
|
||||
case ORC_REG_AX:
|
||||
*base = CFI_AX;
|
||||
case ORC_REG_BP_INDIRECT:
|
||||
*base = CFI_BP_INDIRECT;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
|
|
|
|||
|
|
@ -46,17 +46,20 @@ int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi, struct instruct
|
|||
orc->signal = cfi->signal;
|
||||
|
||||
switch (cfi->cfa.base) {
|
||||
case CFI_AX:
|
||||
orc->sp_reg = ORC_REG_AX;
|
||||
break;
|
||||
case CFI_DX:
|
||||
orc->sp_reg = ORC_REG_DX;
|
||||
break;
|
||||
case CFI_SP:
|
||||
orc->sp_reg = ORC_REG_SP;
|
||||
break;
|
||||
case CFI_SP_INDIRECT:
|
||||
orc->sp_reg = ORC_REG_SP_INDIRECT;
|
||||
break;
|
||||
case CFI_BP:
|
||||
orc->sp_reg = ORC_REG_BP;
|
||||
break;
|
||||
case CFI_BP_INDIRECT:
|
||||
orc->sp_reg = ORC_REG_BP_INDIRECT;
|
||||
case CFI_DI:
|
||||
orc->sp_reg = ORC_REG_DI;
|
||||
break;
|
||||
case CFI_R10:
|
||||
orc->sp_reg = ORC_REG_R10;
|
||||
|
|
@ -64,14 +67,11 @@ int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi, struct instruct
|
|||
case CFI_R13:
|
||||
orc->sp_reg = ORC_REG_R13;
|
||||
break;
|
||||
case CFI_DI:
|
||||
orc->sp_reg = ORC_REG_DI;
|
||||
case CFI_SP_INDIRECT:
|
||||
orc->sp_reg = ORC_REG_SP_INDIRECT;
|
||||
break;
|
||||
case CFI_DX:
|
||||
orc->sp_reg = ORC_REG_DX;
|
||||
break;
|
||||
case CFI_AX:
|
||||
orc->sp_reg = ORC_REG_AX;
|
||||
case CFI_BP_INDIRECT:
|
||||
orc->sp_reg = ORC_REG_BP_INDIRECT;
|
||||
break;
|
||||
default:
|
||||
ERROR_INSN(insn, "unknown CFA base reg %d", cfi->cfa.base);
|
||||
|
|
@ -125,24 +125,24 @@ static const char *reg_name(unsigned int reg)
|
|||
switch (reg) {
|
||||
case ORC_REG_PREV_SP:
|
||||
return "prevsp";
|
||||
case ORC_REG_AX:
|
||||
return "ax";
|
||||
case ORC_REG_DX:
|
||||
return "dx";
|
||||
case ORC_REG_DI:
|
||||
return "di";
|
||||
case ORC_REG_BP:
|
||||
return "bp";
|
||||
case ORC_REG_SP:
|
||||
return "sp";
|
||||
case ORC_REG_DI:
|
||||
return "di";
|
||||
case ORC_REG_R10:
|
||||
return "r10";
|
||||
case ORC_REG_R13:
|
||||
return "r13";
|
||||
case ORC_REG_BP_INDIRECT:
|
||||
return "bp(ind)";
|
||||
case ORC_REG_SP_INDIRECT:
|
||||
return "sp(ind)";
|
||||
case ORC_REG_AX:
|
||||
return "ax";
|
||||
case ORC_REG_BP_INDIRECT:
|
||||
return "bp(ind)";
|
||||
default:
|
||||
return "?";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue