X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fcpu-sparc.md;h=d3409bc1d91648ded646222366c9282d9a6d0981;hb=19046502886ad7697b4c6642337441a7fdafd28a;hp=8c0f2810b42662b0891e5623e931decba9621497;hpb=d49951ccf584ba637afb1dab7fff714478e3174d;p=mono.git diff --git a/mono/mini/cpu-sparc.md b/mono/mini/cpu-sparc.md index 8c0f2810b42..d3409bc1d91 100644 --- a/mono/mini/cpu-sparc.md +++ b/mono/mini/cpu-sparc.md @@ -47,90 +47,25 @@ # # See the code in mini-sparc32.c for more details on how the specifiers are used. # -label: +label: len:0 break: len:64 jmp: len:64 br: len:8 -beq: len:8 -bge: len:8 -bgt: len:8 -ble: len:8 -blt: len:8 -bne.un: len:64 -bge.un: len:64 -bgt.un: len:64 -ble.un: len:64 -blt.un: len:64 -sparc_brz: src1:i len: 8 -sparc_brlez: src1:i len: 8 -sparc_brlz: src1:i len: 8 -sparc_brnz: src1:i len: 8 -sparc_brgz: src1:i len: 8 -sparc_brgez: src1:i len: 8 -sparc_cond_exc_eqz: src1:i len:64 -sparc_cond_exc_nez: src1:i len:64 -sparc_cond_exc_ltz: src1:i len:64 -sparc_cond_exc_gtz: src1:i len:64 -sparc_cond_exc_gez: src1:i len:64 -sparc_cond_exc_lez: src1:i len:64 -ldind.i1: dest:i len:4 -ldind.u1: dest:i len:4 -ldind.i2: dest:i len:4 -ldind.u2: dest:i len:4 -ldind.i4: dest:i len:4 -ldind.u4: dest:i len:4 -ldind.i: dest:i len:4 -ldind.ref: dest:i len:4 -stind.ref: src1:b src2:i -stind.i1: src1:b src2:i -stind.i2: src1:b src2:i -stind.i4: src1:b src2:i -stind.r4: src1:b src2:f -stind.r8: src1:b src2:f -add: dest:i src1:i src2:i len:64 -sub: dest:i src1:i src2:i len:4 -mul: dest:i src1:i src2:i len:4 -div: dest:i src1:i src2:i len:64 -div.un: dest:i src1:i src2:i len:8 -rem: dest:d src1:i src2:i len:64 -rem.un: dest:d src1:i src2:i len:64 -and: dest:i src1:i src2:i len:4 -or: dest:i src1:i src2:i len:4 -xor: dest:i src1:i src2:i len:4 -shl: dest:i src1:i src2:i len:4 -shr: dest:i src1:i src2:i len:4 -shr.un: dest:i src1:i src2:i len:4 -neg: dest:i src1:i len:4 -not: dest:i src1:i len:4 -conv.i1: dest:i src1:i len:8 -conv.i2: dest:i src1:i len:8 -conv.i4: dest:i src1:i len:4 -conv.i8: dest:i src1:i len:4 -conv.r4: dest:f src1:i len:64 -conv.r8: dest:f src1:i len:64 -conv.u4: dest:i src1:i len:4 -conv.u8: dest:i src1:i len:4 + throw: src1:i len:64 -op_rethrow: src1:i len:64 -conv.ovf.u4: dest:i src1:i len:64 -ckfinite: dest:f src1:f len:40 -conv.u2: dest:i src1:i len:8 -conv.u1: dest:i src1:i len:4 -conv.i: dest:i src1:i len:4 -mul.ovf: dest:i src1:i src2:i len:64 -mul.ovf.un: dest:i src1:i src2:i len:64 +rethrow: src1:i len:64 start_handler: len:64 endfinally: len:64 -endfilter: len:64 -conv.u: dest:i src1:i len:4 -arglist: src1:i +endfilter: src1:i len:64 + +ckfinite: dest:f src1:f len:40 ceq: dest:i len:64 cgt: dest:i len:64 cgt.un: dest:i len:64 clt: dest:i len:64 clt.un: dest:i len:64 localloc: dest:i src1:i len:64 -sparc_localloc_imm: dest:i len:64 +localloc_imm: dest:i len:64 compare: src1:i src2:i len:4 icompare: src1:i src2:i len:4 compare_imm: src1:i len:64 @@ -138,13 +73,6 @@ icompare_imm: src1:i len:64 fcompare: src1:f src2:f len:64 lcompare: src1:i src2:i len:4 setfret: dest:f src1:f len:8 -outarg: src1:i len:1 -outarg_imm: len:5 -setret: dest:a src1:i len:4 -setreg: dest:i src1:i len:4 clob:r -setregimm: dest:i len:64 clob:r -setfreg: dest:f src1:f len:4 clob:r -sparc_setfreg_float: dest:f src1:f len:4 clob:r checkthis: src1:b len:4 oparglist: src1:i len:64 call: dest:o clob:c len:40 @@ -219,21 +147,12 @@ cond_exc_ov: len:64 cond_exc_no: len:64 cond_exc_c: len:64 cond_exc_nc: len:64 -long_shl: dest:i src1:i src2:i len:64 -long_shr: dest:i src1:i src2:i len:64 -long_shr_un: dest:i src1:i src2:i len:64 -long_conv_to_ovf_i: dest:i src1:i src2:i len:48 -long_mul_ovf: -long_conv_to_r_un: dest:f src1:i src2:i len:64 -long_shr_imm: dest:i src1:i len:64 -long_shr_un_imm: dest:i src1:i len:64 -long_shl_imm: dest:i src1:i len:64 float_beq: len:8 float_bne_un: len:64 float_blt: len:8 float_blt_un: len:64 float_bgt: len:8 -float_btg_un: len:64 +float_bgt_un: len:64 float_bge: len:64 float_bge_un: len:64 float_ble: len:64 @@ -263,8 +182,7 @@ float_cgt_un: dest:i src1:f src2:f len:64 float_clt: dest:i src1:f src2:f len:64 float_clt_un: dest:i src1:f src2:f len:64 float_conv_to_u: dest:i src1:f len:64 -call_handler: len:64 -op_endfilter: src1:i len:64 +call_handler: len:64 clob:c aot_const: dest:i len:64 adc: dest:i src1:i src2:i len:4 addcc: dest:i src1:i src2:i len:4 @@ -273,8 +191,8 @@ adc_imm: dest:i src1:i len:64 sbb: dest:i src1:i src2:i len:4 sbb_imm: dest:i src1:i len:64 br_reg: src1:i len:8 -op_bigmul: len:2 dest:L src1:a src2:i -op_bigmul_un: len:2 dest:L src1:a src2:i +bigmul: len:2 dest:L src1:a src2:i +bigmul_un: len:2 dest:L src1:a src2:i fmove: dest:f src1:f len:8 # 32 bit opcodes @@ -310,6 +228,19 @@ int_xor_imm: dest:i src1:i len:64 int_shl_imm: dest:i src1:i len:64 int_shr_imm: dest:i src1:i len:64 int_shr_un_imm: dest:i src1:i len:64 +int_mul_ovf: dest:i src1:i src2:i len:64 +int_mul_ovf_un: dest:i src1:i src2:i len:64 +int_conv_to_i1: dest:i src1:i len:8 +int_conv_to_i2: dest:i src1:i len:8 +int_conv_to_i4: dest:i src1:i len:4 +int_conv_to_i8: dest:i src1:i len:4 +int_conv_to_r4: dest:f src1:i len:64 +int_conv_to_r8: dest:f src1:i len:64 +int_conv_to_u4: dest:i src1:i len:4 +int_conv_to_u8: dest:i src1:i len:4 +int_conv_to_u2: dest:i src1:i len:8 +int_conv_to_u1: dest:i src1:i len:4 +int_conv_to_i: dest:i src1:i len:4 int_neg: dest:i src1:i len:64 int_not: dest:i src1:i len:64 int_ceq: dest:i len:64 @@ -317,15 +248,73 @@ int_cgt: dest:i len:64 int_cgt_un: dest:i len:64 int_clt: dest:i len:64 int_clt_un: dest:i len:64 -int_beq: len:64 +int_beq: len:8 +int_bge: len:8 +int_bgt: len:8 +int_ble: len:8 +int_blt: len:8 int_bne_un: len:64 -int_blt: len:64 -int_blt_un: len:64 -int_bgt: len:64 -int_bgt_un: len:64 -int_bge: len:64 int_bge_un: len:64 -int_ble: len:64 +int_bgt_un: len:64 int_ble_un: len:64 +int_blt_un: len:64 + +# 64 bit opcodes +long_shl: dest:i src1:i src2:i len:64 +long_shr: dest:i src1:i src2:i len:64 +long_shr_un: dest:i src1:i src2:i len:64 +long_conv_to_ovf_i: dest:i src1:i src2:i len:48 +long_mul_ovf: +long_conv_to_r_un: dest:f src1:i src2:i len:64 +long_shr_imm: dest:i src1:i len:64 +long_shr_un_imm: dest:i src1:i len:64 +long_shl_imm: dest:i src1:i len:64 memory_barrier: len:4 + +sparc_brz: src1:i len: 8 +sparc_brlez: src1:i len: 8 +sparc_brlz: src1:i len: 8 +sparc_brnz: src1:i len: 8 +sparc_brgz: src1:i len: 8 +sparc_brgez: src1:i len: 8 +sparc_cond_exc_eqz: src1:i len:64 +sparc_cond_exc_nez: src1:i len:64 +sparc_cond_exc_ltz: src1:i len:64 +sparc_cond_exc_gtz: src1:i len:64 +sparc_cond_exc_gez: src1:i len:64 +sparc_cond_exc_lez: src1:i len:64 + +relaxed_nop: len:0 + +# Linear IR opcodes +nop: len:0 +dummy_use: src1:i len:0 +dummy_store: len:0 +not_reached: len:0 +not_null: src1:i len:0 + +jump_table: dest:i len:64 + +cond_exc_ieq: len:64 +cond_exc_ine_un: len:64 +cond_exc_ilt: len:64 +cond_exc_ilt_un: len:64 +cond_exc_igt: len:64 +cond_exc_igt_un: len:64 +cond_exc_ige: len:64 +cond_exc_ige_un: len:64 +cond_exc_ile: len:64 +cond_exc_ile_un: len:64 +cond_exc_iov: len:64 +cond_exc_ino: len:64 +cond_exc_ic: len:64 +cond_exc_inc: len:64 + +long_conv_to_ovf_i4_2: dest:i src1:i src2:i len:48 + +vcall2: len:40 clob:c +vcall2_reg: src1:i len:64 clob:c +vcall2_membase: src1:b len:64 clob:c + +gc_safe_point: len:0