translate.c (59c58f96b270f5edd4ad10954c3a96556cb3a728) | translate.c (14776ab5a12972ea439c7fb2203a4c15a09094b4) |
---|---|
1/* 2 * OpenRISC translation 3 * 4 * Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com> 5 * Feng Gao <gf91597@gmail.com> 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public --- 667 unchanged lines hidden (view full) --- 676 tcg_gen_addi_tl(ea, cpu_R[a->a], a->i); 677 tcg_gen_qemu_ld_tl(cpu_R[a->d], ea, dc->mem_idx, MO_TEUL); 678 tcg_gen_mov_tl(cpu_lock_addr, ea); 679 tcg_gen_mov_tl(cpu_lock_value, cpu_R[a->d]); 680 tcg_temp_free(ea); 681 return true; 682} 683 | 1/* 2 * OpenRISC translation 3 * 4 * Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com> 5 * Feng Gao <gf91597@gmail.com> 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public --- 667 unchanged lines hidden (view full) --- 676 tcg_gen_addi_tl(ea, cpu_R[a->a], a->i); 677 tcg_gen_qemu_ld_tl(cpu_R[a->d], ea, dc->mem_idx, MO_TEUL); 678 tcg_gen_mov_tl(cpu_lock_addr, ea); 679 tcg_gen_mov_tl(cpu_lock_value, cpu_R[a->d]); 680 tcg_temp_free(ea); 681 return true; 682} 683 |
684static void do_load(DisasContext *dc, arg_load *a, TCGMemOp mop) | 684static void do_load(DisasContext *dc, arg_load *a, MemOp mop) |
685{ 686 TCGv ea; 687 688 check_r0_write(a->d); 689 ea = tcg_temp_new(); 690 tcg_gen_addi_tl(ea, cpu_R[a->a], a->i); 691 tcg_gen_qemu_ld_tl(cpu_R[a->d], ea, dc->mem_idx, mop); 692 tcg_temp_free(ea); --- 65 unchanged lines hidden (view full) --- 758 gen_set_label(lab_fail); 759 tcg_gen_movi_tl(cpu_sr_f, 0); 760 761 gen_set_label(lab_done); 762 tcg_gen_movi_tl(cpu_lock_addr, -1); 763 return true; 764} 765 | 685{ 686 TCGv ea; 687 688 check_r0_write(a->d); 689 ea = tcg_temp_new(); 690 tcg_gen_addi_tl(ea, cpu_R[a->a], a->i); 691 tcg_gen_qemu_ld_tl(cpu_R[a->d], ea, dc->mem_idx, mop); 692 tcg_temp_free(ea); --- 65 unchanged lines hidden (view full) --- 758 gen_set_label(lab_fail); 759 tcg_gen_movi_tl(cpu_sr_f, 0); 760 761 gen_set_label(lab_done); 762 tcg_gen_movi_tl(cpu_lock_addr, -1); 763 return true; 764} 765 |
766static void do_store(DisasContext *dc, arg_store *a, TCGMemOp mop) | 766static void do_store(DisasContext *dc, arg_store *a, MemOp mop) |
767{ 768 TCGv t0 = tcg_temp_new(); 769 tcg_gen_addi_tl(t0, cpu_R[a->a], a->i); 770 tcg_gen_qemu_st_tl(cpu_R[a->b], t0, dc->mem_idx, mop); 771 tcg_temp_free(t0); 772} 773 774static bool trans_l_sw(DisasContext *dc, arg_store *a) --- 665 unchanged lines hidden --- | 767{ 768 TCGv t0 = tcg_temp_new(); 769 tcg_gen_addi_tl(t0, cpu_R[a->a], a->i); 770 tcg_gen_qemu_st_tl(cpu_R[a->b], t0, dc->mem_idx, mop); 771 tcg_temp_free(t0); 772} 773 774static bool trans_l_sw(DisasContext *dc, arg_store *a) --- 665 unchanged lines hidden --- |