Commit aa3437359864a40e37ab0ddb221f243c3c952b14
1 parent
6dab28d5
Use always_inline in the MIPS support where applicable.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3375 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
28 additions
and
28 deletions
target-mips/exec.h
| @@ -205,15 +205,15 @@ FOP_PROTO(le) | @@ -205,15 +205,15 @@ FOP_PROTO(le) | ||
| 205 | FOP_PROTO(ngt) | 205 | FOP_PROTO(ngt) |
| 206 | #undef FOP_PROTO | 206 | #undef FOP_PROTO |
| 207 | 207 | ||
| 208 | -static inline void env_to_regs(void) | 208 | +static always_inline void env_to_regs(void) |
| 209 | { | 209 | { |
| 210 | } | 210 | } |
| 211 | 211 | ||
| 212 | -static inline void regs_to_env(void) | 212 | +static always_inline void regs_to_env(void) |
| 213 | { | 213 | { |
| 214 | } | 214 | } |
| 215 | 215 | ||
| 216 | -static inline int cpu_halted(CPUState *env) | 216 | +static always_inline int cpu_halted(CPUState *env) |
| 217 | { | 217 | { |
| 218 | if (!env->halted) | 218 | if (!env->halted) |
| 219 | return 0; | 219 | return 0; |
| @@ -225,7 +225,7 @@ static inline int cpu_halted(CPUState *env) | @@ -225,7 +225,7 @@ static inline int cpu_halted(CPUState *env) | ||
| 225 | return EXCP_HALTED; | 225 | return EXCP_HALTED; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | -static inline void compute_hflags(CPUState *env) | 228 | +static always_inline void compute_hflags(CPUState *env) |
| 229 | { | 229 | { |
| 230 | env->hflags &= ~(MIPS_HFLAG_64 | MIPS_HFLAG_CP0 | MIPS_HFLAG_F64 | | 230 | env->hflags &= ~(MIPS_HFLAG_64 | MIPS_HFLAG_CP0 | MIPS_HFLAG_F64 | |
| 231 | MIPS_HFLAG_FPU | MIPS_HFLAG_UM); | 231 | MIPS_HFLAG_FPU | MIPS_HFLAG_UM); |
target-mips/op.c
| @@ -812,13 +812,13 @@ void op_msubu (void) | @@ -812,13 +812,13 @@ void op_msubu (void) | ||
| 812 | 812 | ||
| 813 | #else /* TARGET_LONG_BITS > HOST_LONG_BITS */ | 813 | #else /* TARGET_LONG_BITS > HOST_LONG_BITS */ |
| 814 | 814 | ||
| 815 | -static inline uint64_t get_HILO (void) | 815 | +static always_inline uint64_t get_HILO (void) |
| 816 | { | 816 | { |
| 817 | return ((uint64_t)env->HI[0][env->current_tc] << 32) | | 817 | return ((uint64_t)env->HI[0][env->current_tc] << 32) | |
| 818 | ((uint64_t)(uint32_t)env->LO[0][env->current_tc]); | 818 | ((uint64_t)(uint32_t)env->LO[0][env->current_tc]); |
| 819 | } | 819 | } |
| 820 | 820 | ||
| 821 | -static inline void set_HILO (uint64_t HILO) | 821 | +static always_inline void set_HILO (uint64_t HILO) |
| 822 | { | 822 | { |
| 823 | env->LO[0][env->current_tc] = (int32_t)(HILO & 0xFFFFFFFF); | 823 | env->LO[0][env->current_tc] = (int32_t)(HILO & 0xFFFFFFFF); |
| 824 | env->HI[0][env->current_tc] = (int32_t)(HILO >> 32); | 824 | env->HI[0][env->current_tc] = (int32_t)(HILO >> 32); |
target-mips/op_helper.c
| @@ -146,12 +146,12 @@ void do_drotrv (void) | @@ -146,12 +146,12 @@ void do_drotrv (void) | ||
| 146 | 146 | ||
| 147 | /* 64 bits arithmetic for 32 bits hosts */ | 147 | /* 64 bits arithmetic for 32 bits hosts */ |
| 148 | #if TARGET_LONG_BITS > HOST_LONG_BITS | 148 | #if TARGET_LONG_BITS > HOST_LONG_BITS |
| 149 | -static inline uint64_t get_HILO (void) | 149 | +static always_inline uint64_t get_HILO (void) |
| 150 | { | 150 | { |
| 151 | return (env->HI[0][env->current_tc] << 32) | (uint32_t)env->LO[0][env->current_tc]; | 151 | return (env->HI[0][env->current_tc] << 32) | (uint32_t)env->LO[0][env->current_tc]; |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | -static inline void set_HILO (uint64_t HILO) | 154 | +static always_inline void set_HILO (uint64_t HILO) |
| 155 | { | 155 | { |
| 156 | env->LO[0][env->current_tc] = (int32_t)HILO; | 156 | env->LO[0][env->current_tc] = (int32_t)HILO; |
| 157 | env->HI[0][env->current_tc] = (int32_t)(HILO >> 32); | 157 | env->HI[0][env->current_tc] = (int32_t)(HILO >> 32); |
| @@ -673,7 +673,7 @@ void do_ctc1 (int reg) | @@ -673,7 +673,7 @@ void do_ctc1 (int reg) | ||
| 673 | do_raise_exception(EXCP_FPE); | 673 | do_raise_exception(EXCP_FPE); |
| 674 | } | 674 | } |
| 675 | 675 | ||
| 676 | -inline char ieee_ex_to_mips(char xcpt) | 676 | +static always_inline char ieee_ex_to_mips(char xcpt) |
| 677 | { | 677 | { |
| 678 | return (xcpt & float_flag_inexact) >> 5 | | 678 | return (xcpt & float_flag_inexact) >> 5 | |
| 679 | (xcpt & float_flag_underflow) >> 3 | | 679 | (xcpt & float_flag_underflow) >> 3 | |
| @@ -682,7 +682,7 @@ inline char ieee_ex_to_mips(char xcpt) | @@ -682,7 +682,7 @@ inline char ieee_ex_to_mips(char xcpt) | ||
| 682 | (xcpt & float_flag_invalid) << 4; | 682 | (xcpt & float_flag_invalid) << 4; |
| 683 | } | 683 | } |
| 684 | 684 | ||
| 685 | -inline char mips_ex_to_ieee(char xcpt) | 685 | +static always_inline char mips_ex_to_ieee(char xcpt) |
| 686 | { | 686 | { |
| 687 | return (xcpt & FP_INEXACT) << 5 | | 687 | return (xcpt & FP_INEXACT) << 5 | |
| 688 | (xcpt & FP_UNDERFLOW) << 3 | | 688 | (xcpt & FP_UNDERFLOW) << 3 | |
| @@ -691,7 +691,7 @@ inline char mips_ex_to_ieee(char xcpt) | @@ -691,7 +691,7 @@ inline char mips_ex_to_ieee(char xcpt) | ||
| 691 | (xcpt & FP_INVALID) >> 4; | 691 | (xcpt & FP_INVALID) >> 4; |
| 692 | } | 692 | } |
| 693 | 693 | ||
| 694 | -inline void update_fcr31(void) | 694 | +static always_inline void update_fcr31(void) |
| 695 | { | 695 | { |
| 696 | int tmp = ieee_ex_to_mips(get_float_exception_flags(&env->fpu->fp_status)); | 696 | int tmp = ieee_ex_to_mips(get_float_exception_flags(&env->fpu->fp_status)); |
| 697 | 697 |
target-mips/translate.c
| @@ -436,7 +436,7 @@ NAME ## 20, NAME ## 21, NAME ## 22, NAME ## 23, \ | @@ -436,7 +436,7 @@ NAME ## 20, NAME ## 21, NAME ## 22, NAME ## 23, \ | ||
| 436 | NAME ## 24, NAME ## 25, NAME ## 26, NAME ## 27, \ | 436 | NAME ## 24, NAME ## 25, NAME ## 26, NAME ## 27, \ |
| 437 | NAME ## 28, NAME ## 29, NAME ## 30, NAME ## 31, \ | 437 | NAME ## 28, NAME ## 29, NAME ## 30, NAME ## 31, \ |
| 438 | }; \ | 438 | }; \ |
| 439 | -static inline void func(int n) \ | 439 | +static always_inline void func(int n) \ |
| 440 | { \ | 440 | { \ |
| 441 | NAME ## _table[n](); \ | 441 | NAME ## _table[n](); \ |
| 442 | } | 442 | } |
| @@ -470,7 +470,7 @@ NAME ## 20, NAME ## 21, NAME ## 22, NAME ## 23, \ | @@ -470,7 +470,7 @@ NAME ## 20, NAME ## 21, NAME ## 22, NAME ## 23, \ | ||
| 470 | NAME ## 24, NAME ## 25, NAME ## 26, NAME ## 27, \ | 470 | NAME ## 24, NAME ## 25, NAME ## 26, NAME ## 27, \ |
| 471 | NAME ## 28, NAME ## 29, NAME ## 30, NAME ## 31, \ | 471 | NAME ## 28, NAME ## 29, NAME ## 30, NAME ## 31, \ |
| 472 | }; \ | 472 | }; \ |
| 473 | -static inline void func(int n) \ | 473 | +static always_inline void func(int n) \ |
| 474 | { \ | 474 | { \ |
| 475 | NAME ## _table[n](); \ | 475 | NAME ## _table[n](); \ |
| 476 | } | 476 | } |
| @@ -521,7 +521,7 @@ static GenOpFunc1 * gen_op_cmp ## type ## _ ## fmt ## _table[16] = { \ | @@ -521,7 +521,7 @@ static GenOpFunc1 * gen_op_cmp ## type ## _ ## fmt ## _table[16] = { \ | ||
| 521 | gen_op_cmp ## type ## _ ## fmt ## _le, \ | 521 | gen_op_cmp ## type ## _ ## fmt ## _le, \ |
| 522 | gen_op_cmp ## type ## _ ## fmt ## _ngt, \ | 522 | gen_op_cmp ## type ## _ ## fmt ## _ngt, \ |
| 523 | }; \ | 523 | }; \ |
| 524 | -static inline void gen_cmp ## type ## _ ## fmt(int n, long cc) \ | 524 | +static always_inline void gen_cmp ## type ## _ ## fmt(int n, long cc) \ |
| 525 | { \ | 525 | { \ |
| 526 | gen_op_cmp ## type ## _ ## fmt ## _table[n](cc); \ | 526 | gen_op_cmp ## type ## _ ## fmt ## _table[n](cc); \ |
| 527 | } | 527 | } |
| @@ -636,7 +636,7 @@ do { \ | @@ -636,7 +636,7 @@ do { \ | ||
| 636 | glue(gen_op_store_fpr_, FTn)(Fn); \ | 636 | glue(gen_op_store_fpr_, FTn)(Fn); \ |
| 637 | } while (0) | 637 | } while (0) |
| 638 | 638 | ||
| 639 | -static inline void gen_save_pc(target_ulong pc) | 639 | +static always_inline void gen_save_pc(target_ulong pc) |
| 640 | { | 640 | { |
| 641 | #if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) | 641 | #if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) |
| 642 | if (pc == (int32_t)pc) { | 642 | if (pc == (int32_t)pc) { |
| @@ -649,7 +649,7 @@ static inline void gen_save_pc(target_ulong pc) | @@ -649,7 +649,7 @@ static inline void gen_save_pc(target_ulong pc) | ||
| 649 | #endif | 649 | #endif |
| 650 | } | 650 | } |
| 651 | 651 | ||
| 652 | -static inline void gen_save_btarget(target_ulong btarget) | 652 | +static always_inline void gen_save_btarget(target_ulong btarget) |
| 653 | { | 653 | { |
| 654 | #if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) | 654 | #if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64) |
| 655 | if (btarget == (int32_t)btarget) { | 655 | if (btarget == (int32_t)btarget) { |
| @@ -662,7 +662,7 @@ static inline void gen_save_btarget(target_ulong btarget) | @@ -662,7 +662,7 @@ static inline void gen_save_btarget(target_ulong btarget) | ||
| 662 | #endif | 662 | #endif |
| 663 | } | 663 | } |
| 664 | 664 | ||
| 665 | -static inline void save_cpu_state (DisasContext *ctx, int do_save_pc) | 665 | +static always_inline void save_cpu_state (DisasContext *ctx, int do_save_pc) |
| 666 | { | 666 | { |
| 667 | #if defined MIPS_DEBUG_DISAS | 667 | #if defined MIPS_DEBUG_DISAS |
| 668 | if (loglevel & CPU_LOG_TB_IN_ASM) { | 668 | if (loglevel & CPU_LOG_TB_IN_ASM) { |
| @@ -694,7 +694,7 @@ static inline void save_cpu_state (DisasContext *ctx, int do_save_pc) | @@ -694,7 +694,7 @@ static inline void save_cpu_state (DisasContext *ctx, int do_save_pc) | ||
| 694 | } | 694 | } |
| 695 | } | 695 | } |
| 696 | 696 | ||
| 697 | -static inline void restore_cpu_state (CPUState *env, DisasContext *ctx) | 697 | +static always_inline void restore_cpu_state (CPUState *env, DisasContext *ctx) |
| 698 | { | 698 | { |
| 699 | ctx->saved_hflags = ctx->hflags; | 699 | ctx->saved_hflags = ctx->hflags; |
| 700 | switch (ctx->hflags & MIPS_HFLAG_BMASK) { | 700 | switch (ctx->hflags & MIPS_HFLAG_BMASK) { |
| @@ -712,7 +712,7 @@ static inline void restore_cpu_state (CPUState *env, DisasContext *ctx) | @@ -712,7 +712,7 @@ static inline void restore_cpu_state (CPUState *env, DisasContext *ctx) | ||
| 712 | } | 712 | } |
| 713 | } | 713 | } |
| 714 | 714 | ||
| 715 | -static inline void generate_exception_err (DisasContext *ctx, int excp, int err) | 715 | +static always_inline void generate_exception_err (DisasContext *ctx, int excp, int err) |
| 716 | { | 716 | { |
| 717 | #if defined MIPS_DEBUG_DISAS | 717 | #if defined MIPS_DEBUG_DISAS |
| 718 | if (loglevel & CPU_LOG_TB_IN_ASM) | 718 | if (loglevel & CPU_LOG_TB_IN_ASM) |
| @@ -726,24 +726,24 @@ static inline void generate_exception_err (DisasContext *ctx, int excp, int err) | @@ -726,24 +726,24 @@ static inline void generate_exception_err (DisasContext *ctx, int excp, int err) | ||
| 726 | ctx->bstate = BS_EXCP; | 726 | ctx->bstate = BS_EXCP; |
| 727 | } | 727 | } |
| 728 | 728 | ||
| 729 | -static inline void generate_exception (DisasContext *ctx, int excp) | 729 | +static always_inline void generate_exception (DisasContext *ctx, int excp) |
| 730 | { | 730 | { |
| 731 | generate_exception_err (ctx, excp, 0); | 731 | generate_exception_err (ctx, excp, 0); |
| 732 | } | 732 | } |
| 733 | 733 | ||
| 734 | -static inline void check_cp0_enabled(DisasContext *ctx) | 734 | +static always_inline void check_cp0_enabled(DisasContext *ctx) |
| 735 | { | 735 | { |
| 736 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_CP0))) | 736 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_CP0))) |
| 737 | generate_exception_err(ctx, EXCP_CpU, 1); | 737 | generate_exception_err(ctx, EXCP_CpU, 1); |
| 738 | } | 738 | } |
| 739 | 739 | ||
| 740 | -static inline void check_cp1_enabled(DisasContext *ctx) | 740 | +static always_inline void check_cp1_enabled(DisasContext *ctx) |
| 741 | { | 741 | { |
| 742 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_FPU))) | 742 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_FPU))) |
| 743 | generate_exception_err(ctx, EXCP_CpU, 1); | 743 | generate_exception_err(ctx, EXCP_CpU, 1); |
| 744 | } | 744 | } |
| 745 | 745 | ||
| 746 | -static inline void check_cp1_64bitmode(DisasContext *ctx) | 746 | +static always_inline void check_cp1_64bitmode(DisasContext *ctx) |
| 747 | { | 747 | { |
| 748 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_F64))) | 748 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_F64))) |
| 749 | generate_exception(ctx, EXCP_RI); | 749 | generate_exception(ctx, EXCP_RI); |
| @@ -768,7 +768,7 @@ void check_cp1_registers(DisasContext *ctx, int regs) | @@ -768,7 +768,7 @@ void check_cp1_registers(DisasContext *ctx, int regs) | ||
| 768 | 768 | ||
| 769 | /* This code generates a "reserved instruction" exception if the | 769 | /* This code generates a "reserved instruction" exception if the |
| 770 | CPU does not support the instruction set corresponding to flags. */ | 770 | CPU does not support the instruction set corresponding to flags. */ |
| 771 | -static inline void check_insn(CPUState *env, DisasContext *ctx, int flags) | 771 | +static always_inline void check_insn(CPUState *env, DisasContext *ctx, int flags) |
| 772 | { | 772 | { |
| 773 | if (unlikely(!(env->insn_flags & flags))) | 773 | if (unlikely(!(env->insn_flags & flags))) |
| 774 | generate_exception(ctx, EXCP_RI); | 774 | generate_exception(ctx, EXCP_RI); |
| @@ -776,7 +776,7 @@ static inline void check_insn(CPUState *env, DisasContext *ctx, int flags) | @@ -776,7 +776,7 @@ static inline void check_insn(CPUState *env, DisasContext *ctx, int flags) | ||
| 776 | 776 | ||
| 777 | /* This code generates a "reserved instruction" exception if the | 777 | /* This code generates a "reserved instruction" exception if the |
| 778 | CPU is not MIPS MT capable. */ | 778 | CPU is not MIPS MT capable. */ |
| 779 | -static inline void check_mips_mt(CPUState *env, DisasContext *ctx) | 779 | +static always_inline void check_mips_mt(CPUState *env, DisasContext *ctx) |
| 780 | { | 780 | { |
| 781 | if (unlikely(!(env->CP0_Config3 & (1 << CP0C3_MT)))) | 781 | if (unlikely(!(env->CP0_Config3 & (1 << CP0C3_MT)))) |
| 782 | generate_exception(ctx, EXCP_RI); | 782 | generate_exception(ctx, EXCP_RI); |
| @@ -784,7 +784,7 @@ static inline void check_mips_mt(CPUState *env, DisasContext *ctx) | @@ -784,7 +784,7 @@ static inline void check_mips_mt(CPUState *env, DisasContext *ctx) | ||
| 784 | 784 | ||
| 785 | /* This code generates a "reserved instruction" exception if 64-bit | 785 | /* This code generates a "reserved instruction" exception if 64-bit |
| 786 | instructions are not enabled. */ | 786 | instructions are not enabled. */ |
| 787 | -static inline void check_mips_64(DisasContext *ctx) | 787 | +static always_inline void check_mips_64(DisasContext *ctx) |
| 788 | { | 788 | { |
| 789 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_64))) | 789 | if (unlikely(!(ctx->hflags & MIPS_HFLAG_64))) |
| 790 | generate_exception(ctx, EXCP_RI); | 790 | generate_exception(ctx, EXCP_RI); |
| @@ -1634,7 +1634,7 @@ static void gen_trap (DisasContext *ctx, uint32_t opc, | @@ -1634,7 +1634,7 @@ static void gen_trap (DisasContext *ctx, uint32_t opc, | ||
| 1634 | ctx->bstate = BS_STOP; | 1634 | ctx->bstate = BS_STOP; |
| 1635 | } | 1635 | } |
| 1636 | 1636 | ||
| 1637 | -static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) | 1637 | +static always_inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) |
| 1638 | { | 1638 | { |
| 1639 | TranslationBlock *tb; | 1639 | TranslationBlock *tb; |
| 1640 | tb = ctx->tb; | 1640 | tb = ctx->tb; |
| @@ -6477,7 +6477,7 @@ static void decode_opc (CPUState *env, DisasContext *ctx) | @@ -6477,7 +6477,7 @@ static void decode_opc (CPUState *env, DisasContext *ctx) | ||
| 6477 | } | 6477 | } |
| 6478 | } | 6478 | } |
| 6479 | 6479 | ||
| 6480 | -static inline int | 6480 | +static always_inline int |
| 6481 | gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, | 6481 | gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, |
| 6482 | int search_pc) | 6482 | int search_pc) |
| 6483 | { | 6483 | { |