Merge pull request #926 from ermshiperete/novell-bug-674098
[mono.git] / mono / mini / cpu-ppc64.md
index 6c4b1f515fbfae90bbfb2a16dc0a5ab3a9bdc0e6..4bf27a306eeb686ea491db234ee474803a2a92cc 100644 (file)
 memory_barrier: len:4
 nop: len:4
 relaxed_nop: len:4
-break: len:4
-jmp: len:92
-call: dest:a clob:c len:28
+break: len:40
+seq_point: len:48
+jmp: len:96
+call: dest:a clob:c len:36
 br: len:4
-throw: src1:i len:20
-rethrow: src1:i len:20
+throw: src1:i len:40
+rethrow: src1:i len:40
 ckfinite: dest:f src1:f
 ppc_check_finite: src1:i len:16
 add_ovf_carry: dest:i src1:i src2:i len:16
@@ -61,7 +62,7 @@ sub_ovf_carry: dest:i src1:i src2:i len:16
 add_ovf_un_carry: dest:i src1:i src2:i len:16
 sub_ovf_un_carry: dest:i src1:i src2:i len:16
 start_handler: len:16
-endfinally: len:12
+endfinally: len:20
 ceq: dest:i len:12
 cgt: dest:i len:12
 cgt.un: dest:i len:12
@@ -74,29 +75,30 @@ fcompare: src1:f src2:f len:12
 oparglist: src1:i len:12
 setlret: src1:i src2:i len:12
 checkthis: src1:b len:4
-voidcall: len:28 clob:c
-voidcall_reg: src1:i len:12 clob:c
-voidcall_membase: src1:b len:12 clob:c
-fcall: dest:g len:16 clob:c
-fcall_reg: dest:g src1:i len:12 clob:c
-fcall_membase: dest:g src1:b len:12 clob:c
-lcall: dest:a len:16 clob:c
-lcall_reg: dest:a src1:i len:12 clob:c
-lcall_membase: dest:a src1:b len:12 clob:c
+voidcall: len:36 clob:c
+voidcall_reg: src1:i len:16 clob:c
+voidcall_membase: src1:b len:16 clob:c
+fcall: dest:g len:36 clob:c
+fcall_reg: dest:g src1:i len:16 clob:c
+fcall_membase: dest:g src1:b len:16 clob:c
+lcall: dest:a len:36 clob:c
+lcall_reg: dest:a src1:i len:16 clob:c
+lcall_membase: dest:a src1:b len:16 clob:c
 vcall: len:16 clob:c
-vcall_reg: src1:i len:12 clob:c
+vcall_reg: src1:i len:16 clob:c
 vcall_membase: src1:b len:12 clob:c
-call_reg: dest:a src1:i len:12 clob:c
-call_membase: dest:a src1:b len:12 clob:c
+call_reg: dest:a src1:i len:16 clob:c
+call_membase: dest:a src1:b len:16 clob:c
 iconst: dest:i len:20
 i8const: dest:i len:20
 r4const: dest:f len:12
-r8const: dest:f len:12
+r8const: dest:f len:24
 label: len:0
 store_membase_reg: dest:b src1:i len:12
 storei1_membase_reg: dest:b src1:i len:12
 storei2_membase_reg: dest:b src1:i len:12
 storei4_membase_reg: dest:b src1:i len:12
+storei8_membase_reg: dest:b src1:i len:12
 storer4_membase_reg: dest:b src1:f len:16
 storer8_membase_reg: dest:b src1:f len:12
 load_membase: dest:i src1:b len:12
@@ -106,6 +108,7 @@ loadi2_membase: dest:i src1:b len:12
 loadu2_membase: dest:i src1:b len:12
 loadi4_membase: dest:i src1:b len:12
 loadu4_membase: dest:i src1:b len:12
+loadi8_membase: dest:i src1:b len:12
 loadr4_membase: dest:f src1:b len:12
 loadr8_membase: dest:f src1:b len:12
 load_memindex: dest:i src1:b src2:i len:4
@@ -115,13 +118,15 @@ loadi2_memindex: dest:i src1:b src2:i len:4
 loadu2_memindex: dest:i src1:b src2:i len:4
 loadi4_memindex: dest:i src1:b src2:i len:4
 loadu4_memindex: dest:i src1:b src2:i len:4
+loadi8_memindex: dest:i src1:b src2:i len:4
 loadr4_memindex: dest:f src1:b src2:i len:4
 loadr8_memindex: dest:f src1:b src2:i len:4
 store_memindex: dest:b src1:i src2:i len:4
 storei1_memindex: dest:b src1:i src2:i len:4
 storei2_memindex: dest:b src1:i src2:i len:4
 storei4_memindex: dest:b src1:i src2:i len:4
-storer4_memindex: dest:b src1:i src2:i len:4
+storei8_memindex: dest:b src1:i src2:i len:4
+storer4_memindex: dest:b src1:i src2:i len:8
 storer8_memindex: dest:b src1:i src2:i len:4
 loadu4_mem: dest:i len:8
 move: dest:i src1:i len:4
@@ -194,9 +199,11 @@ float_cgt_un: dest:i src1:f src2:f len:20
 float_clt: dest:i src1:f src2:f len:16
 float_clt_un: dest:i src1:f src2:f len:20
 float_conv_to_u: dest:i src1:f len:36
-call_handler: len:12
-endfilter: src1:i len:16
+call_handler: len:12 clob:c
+endfilter: src1:i len:20
 aot_const: dest:i len:8
+load_gotaddr: dest:i len:32
+got_entry: dest:i src1:b len:32
 sqrt: dest:f src1:f len:4
 adc: dest:i src1:i src2:i len:4
 addcc: dest:i src1:i src2:i len:4
@@ -211,7 +218,7 @@ bigmul_un: len:12 dest:i src1:i src2:i
 tls_get: len:8 dest:i
 
 # Linear IR opcodes
-dummy_use: len:0
+dummy_use: src1:i len:0
 dummy_store: len:0
 not_reached: len:0
 not_null: src1:i len:0
@@ -235,9 +242,10 @@ int_not: dest:i src1:i len:4
 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_r4: dest:f src1:i len:36
-int_conv_to_r8: dest:f src1:i len:36
-int_conv_to_u4: dest:i src1:i
+sext_i4: dest:i src1:i len:4
+int_conv_to_r4: dest:f src1:i len:20
+int_conv_to_r8: dest:f src1:i len:16
+int_conv_to_u4: 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_beq: len:8
@@ -264,7 +272,7 @@ int_sbb: dest:i src1:i src2:i len:4
 int_adc_imm: dest:i src1:i len:12
 int_sbb_imm: dest:i src1:i len:12
 
-int_add_imm: dest:i src1:i len:12
+int_add_imm: dest:i src1:i len:4
 int_sub_imm: dest:i src1:i len:12
 int_mul_imm: dest:i src1:i len:12
 int_div_imm: dest:i src1:i len:20
@@ -306,6 +314,7 @@ icompare_imm: src1:i len:12
 long_add: dest:i src1:i src2:i len:4
 long_sub: dest:i src1:i src2:i len:4
 long_mul: dest:i src1:i src2:i len:4
+long_mul_imm: dest:i src1:i len:4
 long_div: dest:i src1:i src2:i len:40
 long_div_un: dest:i src1:i src2:i len:16
 long_rem: dest:i src1:i src2:i len:48
@@ -314,18 +323,23 @@ long_and: dest:i src1:i src2:i len:4
 long_or: dest:i src1:i src2:i len:4
 long_xor: dest:i src1:i src2:i len:4
 long_shl: dest:i src1:i src2:i len:4
+long_shl_imm: dest:i src1:i len:4
 long_shr: dest:i src1:i src2:i len:4
 long_shr_un: dest:i src1:i src2:i len:4
+long_shr_imm: dest:i src1:i len:4
+long_shr_un_imm: dest:i src1:i len:4
 long_neg: dest:i src1:i len:4
 long_not: dest:i src1:i len:4
-long_conv_to_i1: dest:i src1:i len:8
-long_conv_to_i2: dest:i src1:i len:8
+long_conv_to_i1: dest:i src1:i len:4
+long_conv_to_i2: dest:i src1:i len:4
 long_conv_to_i4: dest:i src1:i len:4
-long_conv_to_r4: dest:f src1:i len:36
-long_conv_to_r8: dest:f src1:i len:36
+long_conv_to_r4: dest:f src1:i len:16
+long_conv_to_r8: dest:f src1:i len:12
 long_conv_to_u4: dest:i src1:i
-long_conv_to_u2: dest:i src1:i len:8
+long_conv_to_u2: dest:i src1:i len:4
 long_conv_to_u1: dest:i src1:i len:4
+zext_i4: dest:i src1:i len:4
+
 long_beq: len:8
 long_bge: len:8
 long_bgt: len:8
@@ -349,14 +363,25 @@ long_cgt_un: dest:i len:12
 long_clt: dest:i len:12
 long_clt_un: dest:i len:12
 
+long_add_imm: dest:i src1:i clob:1 len:4
+long_sub_imm: dest:i src1:i clob:1 len:4
+long_and_imm: dest:i src1:i clob:1 len:4
+long_or_imm: dest:i src1:i clob:1 len:4
+long_xor_imm: dest:i src1:i clob:1 len:4
+
 lcompare: src1:i src2:i len:4
 lcompare_imm: src1:i len:12
 
 #long_conv_to_ovf_i4_2: dest:i src1:i src2:i len:30
 
-vcall2: len:20 clob:c
-vcall2_reg: src1:i len:8 clob:c
-vcall2_membase: src1:b len:12 clob:c
+vcall2: len:36 clob:c
+vcall2_reg: src1:i len:16 clob:c
+vcall2_membase: src1:b len:16 clob:c
+
+jump_table: dest:i len:20
 
-jump_table: dest:i len:8
+atomic_add_new_i4: src1:b src2:i dest:i len:20
+atomic_add_new_i8: src1:b src2:i dest:i len:20
 
+atomic_cas_i4: src1:b src2:i src3:i dest:i len:30
+atomic_cas_i8: src1:b src2:i src3:i dest:i len:30