~jderose/ubuntu/raring/qemu/vde-again

« back to all changes in this revision

Viewing changes to tcg/tci/tcg-target.c

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2013-01-14 23:22:51 UTC
  • mfrom: (1.6.7) (11.1.12 experimental)
  • Revision ID: package-import@ubuntu.com-20130114232251-zuuixzxdshv9uu7s
Tags: 1.3.0+dfsg-1~exp3ubuntu1
* Merge 1.3.0+dfsg-1~exp3.  Remaining ubuntu delta:
  - debian/control:
    * update maintainer
    * remove vde2 recommends
    * build-deps: remove libusbredir, libvdeplug2-dev,
      libspice-server-dev, libspice-protocol-dev, libiscsi-dev,
      and libxen-dev.
    * qemu-keymaps: break/replace qemu-common
    * qemu-system:
      - break/replace qemu-common
      - depend on udev
      - remove openbios-ppc, openbios-sparc, and openhackware from
        Depends.  (Intend to add them back once we can build them.)
      - provides: qemu-kvm
    * qemu-utils: break/replace qemu-kvm
    * set up transitional packages for qemu-kvm, qemu-common, and kvm.
  - qemu-kvm.upstart:
    - add qemu-system.qemu-kvm.upstart
    - debian/rules: add dh_installinit to get qemu-system.upstart installed.
    - take the defaults from the old qemu-kvm.defaults, and move them into
      the upstart job
  - debian/patches:
    - apply gridcentric patches from lp:~amscanne/+junk/gridcentric-qemu-patches
    - apply arm patches from git://git.linaro.org/qemu/qemu-linaro.git
  - ifup/down:
    - copy Debian qemu-kvm's kvm-ifup/down into debian/
    - fix dh_install for kvm-ifup/down in debian/rules
    - add links for qemu-ifup/down in qemu-system.links
    - remove (debian's original) qemu-ifup from qemu-system.install
  - debian/qemu-system.postinst
    - udevadm trigger to fix up /dev/kvm perms
    - make the 'qemu' symlink point to qemu-system-x86_64, not -i386.
  - debian/qemu-system.links:
    - point 'kvm' to qemu-system-x86_64
    - remove pxe-virtio, pxe-e1000 and pxe-rtl8139 links (which conflict
      with ones from kvm-ipxe).  We may want to move the links from kvm-ipxe
      back to qemu-system at some point.
* Add note about kvm to qemu-system.README.debian.
* Copy kvm-ifup and kvm-ifdown from debian's qemu-kvm
* Remove TAPBR from qemu-kvm.conf.
* Make sure /dev/kvm gets its acls cleared:
  - Add acl to qemu-system.depends
  - update qemu-system.udev to run setfacl to set g::rw acl
* qemu-system.qemu-kvm.conf: don't rmmod at stop
* Remove vnc-jpeg, libiscsi-dev, and vde from debian/configure-opts
* Remove hugepages sysctl file - qemu now supports transparent hugepages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
69
69
    { INDEX_op_exit_tb, { NULL } },
70
70
    { INDEX_op_goto_tb, { NULL } },
71
71
    { INDEX_op_call, { RI } },
72
 
    { INDEX_op_jmp, { RI } },
73
72
    { INDEX_op_br, { NULL } },
74
73
 
75
74
    { INDEX_op_mov_i32, { R, R } },
123
122
    { INDEX_op_rotl_i32, { R, RI, RI } },
124
123
    { INDEX_op_rotr_i32, { R, RI, RI } },
125
124
#endif
 
125
#if TCG_TARGET_HAS_deposit_i32
 
126
    { INDEX_op_deposit_i32, { R, "0", R } },
 
127
#endif
126
128
 
127
129
    { INDEX_op_brcond_i32, { R, RI } },
128
130
 
201
203
    { INDEX_op_rotl_i64, { R, RI, RI } },
202
204
    { INDEX_op_rotr_i64, { R, RI, RI } },
203
205
#endif
 
206
#if TCG_TARGET_HAS_deposit_i64
 
207
    { INDEX_op_deposit_i64, { R, "0", R } },
 
208
#endif
204
209
    { INDEX_op_brcond_i64, { R, RI } },
205
210
 
206
211
#if TCG_TARGET_HAS_ext8s_i64
300
305
#endif
301
306
};
302
307
 
303
 
#if MAX_OPC_PARAM_IARGS != 4
 
308
#if MAX_OPC_PARAM_IARGS != 5
304
309
# error Fix needed, number of supported input arguments changed!
305
310
#endif
306
311
 
309
314
    TCG_REG_R1,
310
315
    TCG_REG_R2,
311
316
    TCG_REG_R3,
 
317
#if 0 /* used for TCG_REG_CALL_STACK */
 
318
    TCG_REG_R4,
 
319
#endif
 
320
    TCG_REG_R5,
312
321
#if TCG_TARGET_REG_BITS == 32
313
322
    /* 32 bit hosts need 2 * MAX_OPC_PARAM_IARGS registers. */
314
 
#if 0 /* used for TCG_REG_CALL_STACK */
315
 
    TCG_REG_R4,
316
 
#endif
317
 
    TCG_REG_R5,
318
323
    TCG_REG_R6,
319
324
    TCG_REG_R7,
320
325
#if TCG_TARGET_NB_REGS >= 16
321
326
    TCG_REG_R8,
 
327
    TCG_REG_R9,
 
328
    TCG_REG_R10,
322
329
#else
323
330
# error Too few input registers available
324
331
#endif
581
588
    case INDEX_op_call:
582
589
        tcg_out_ri(s, const_args[0], args[0]);
583
590
        break;
584
 
    case INDEX_op_jmp:
585
 
        TODO();
586
 
        break;
587
591
    case INDEX_op_setcond_i32:
588
592
        tcg_out_r(s, args[0]);
589
593
        tcg_out_r(s, args[1]);
655
659
        tcg_out_ri32(s, const_args[1], args[1]);
656
660
        tcg_out_ri32(s, const_args[2], args[2]);
657
661
        break;
 
662
    case INDEX_op_deposit_i32:  /* Optional (TCG_TARGET_HAS_deposit_i32). */
 
663
        tcg_out_r(s, args[0]);
 
664
        tcg_out_r(s, args[1]);
 
665
        tcg_out_r(s, args[2]);
 
666
        assert(args[3] <= UINT8_MAX);
 
667
        tcg_out8(s, args[3]);
 
668
        assert(args[4] <= UINT8_MAX);
 
669
        tcg_out8(s, args[4]);
 
670
        break;
658
671
 
659
672
#if TCG_TARGET_REG_BITS == 64
660
673
    case INDEX_op_mov_i64:
682
695
        tcg_out_ri64(s, const_args[1], args[1]);
683
696
        tcg_out_ri64(s, const_args[2], args[2]);
684
697
        break;
 
698
    case INDEX_op_deposit_i64:  /* Optional (TCG_TARGET_HAS_deposit_i64). */
 
699
        tcg_out_r(s, args[0]);
 
700
        tcg_out_r(s, args[1]);
 
701
        tcg_out_r(s, args[2]);
 
702
        assert(args[3] <= UINT8_MAX);
 
703
        tcg_out8(s, args[3]);
 
704
        assert(args[4] <= UINT8_MAX);
 
705
        tcg_out8(s, args[4]);
 
706
        break;
685
707
    case INDEX_op_div_i64:      /* Optional (TCG_TARGET_HAS_div_i64). */
686
708
    case INDEX_op_divu_i64:     /* Optional (TCG_TARGET_HAS_div_i64). */
687
709
    case INDEX_op_rem_i64:      /* Optional (TCG_TARGET_HAS_div_i64). */
798
820
    case INDEX_op_qemu_st8:
799
821
    case INDEX_op_qemu_st16:
800
822
    case INDEX_op_qemu_st32:
801
 
#ifdef CONFIG_TCG_PASS_AREG0
802
 
        tcg_out_r(s, TCG_AREG0);
803
 
#endif
804
823
        tcg_out_r(s, *args++);
805
824
        tcg_out_r(s, *args++);
806
825
#if TARGET_LONG_BITS > TCG_TARGET_REG_BITS
811
830
#endif
812
831
        break;
813
832
    case INDEX_op_qemu_st64:
814
 
#ifdef CONFIG_TCG_PASS_AREG0
815
 
        tcg_out_r(s, TCG_AREG0);
816
 
#endif
817
833
        tcg_out_r(s, *args++);
818
834
#if TCG_TARGET_REG_BITS == 32
819
835
        tcg_out_r(s, *args++);
867
883
    return arg_ct->ct & TCG_CT_CONST;
868
884
}
869
885
 
870
 
/* Maximum number of register used for input function arguments. */
871
 
static int tcg_target_get_call_iarg_regs_count(int flags)
872
 
{
873
 
    return ARRAY_SIZE(tcg_target_call_iarg_regs);
874
 
}
875
 
 
876
886
static void tcg_target_init(TCGContext *s)
877
887
{
878
888
#if defined(CONFIG_DEBUG_TCG_INTERPRETER)