s390x-codegen.h : Fix instruction definition and add instruction format variant
[mono.git] / mono / mini / cpu-amd64.md
old mode 100644 (file)
new mode 100755 (executable)
index 25fc6c1..b24b0e5
@@ -66,6 +66,7 @@ tailcall: len:120 clob:c
 br: len:6
 label: len:0
 seq_point: len:31 clob:c
+il_seq_point: len:0
 
 long_add: dest:i src1:i src2:i len:3 clob:1 nacl:6
 long_sub: dest:i src1:i src2:i len:3 clob:1 nacl:6
@@ -114,13 +115,14 @@ cgt: dest:c len:8
 cgt.un: dest:c len:8
 clt: dest:c len:8
 clt.un: dest:c len:8
-localloc: dest:i src1:i len:84
+localloc: dest:i src1:i len:96
 compare: src1:i src2:i len:3
 lcompare: src1:i src2:i len:3
 icompare: src1:i src2:i len:3
 compare_imm: src1:i len:13
 icompare_imm: src1:i len:8
 fcompare: src1:f src2:f clob:a len:13
+rcompare: src1:f src2:f clob:a len:13
 oparglist: src1:b len:11
 checkthis: src1:b len:5 nacl:8
 call: dest:a clob:c len:32 nacl:64
@@ -130,6 +132,9 @@ voidcall_membase: src1:b clob:c len:32 nacl:64
 fcall: dest:f len:64 clob:c
 fcall_reg: dest:f src1:i len:64 clob:c
 fcall_membase: dest:f src1:b len:64 clob:c
+rcall: dest:f len:64 clob:c
+rcall_reg: dest:f src1:i len:64 clob:c
+rcall_membase: dest:f src1:b len:64 clob:c
 lcall: dest:a len:64 clob:c
 lcall_reg: dest:a src1:i len:64 clob:c
 lcall_membase: dest:a src1:b len:64 clob:c
@@ -255,7 +260,37 @@ float_cgt_un_membase: dest:i src1:f src2:b len:48
 float_clt_membase: dest:i src1:f src2:b len:35
 float_clt_un_membase: dest:i src1:f src2:b len:42
 float_conv_to_u: dest:i src1:f len:46
+
+# R4 opcodes
+r4_conv_to_i1: dest:i src1:f len:32
+r4_conv_to_u1: dest:i src1:f len:32
+r4_conv_to_i2: dest:i src1:f len:32
+r4_conv_to_u2: dest:i src1:f len:32
+r4_conv_to_i4: dest:i src1:f len:16
+r4_conv_to_u4: dest:i src1:f len:32
+r4_conv_to_i8: dest:i src1:f len:32
+r4_conv_to_r8: dest:f src1:f len:17
+r4_conv_to_r4: dest:f src1:f len:17
+r4_add: dest:f src1:f src2:f clob:1 len:5
+r4_sub: dest:f src1:f src2:f clob:1 len:5
+r4_mul: dest:f src1:f src2:f clob:1 len:5
+r4_div: dest:f src1:f src2:f clob:1 len:5
+r4_neg: dest:f src1:f clob:1 len:23
+r4_ceq: dest:i src1:f src2:f len:35
+r4_cgt: dest:i src1:f src2:f len:35
+r4_cgt_un: dest:i src1:f src2:f len:48
+r4_clt: dest:i src1:f src2:f len:35
+r4_clt_un: dest:i src1:f src2:f len:42
+r4_cneq: dest:i src1:f src2:f len:42
+r4_cge: dest:i src1:f src2:f len:35
+r4_cle: dest:i src1:f src2:f len:35
+
 fmove: dest:f src1:f len:8
+rmove: dest:f src1:f len:8
+move_f_to_i4: dest:i src1:f len:16
+move_i4_to_f: dest:f src1:i len:16
+move_f_to_i8: dest:i src1:f len:5
+move_i8_to_f: dest:f src1:i len:5
 call_handler: len:14 clob:c nacl:52
 aot_const: dest:i len:10
 nacl_gc_safe_point: clob:c
@@ -293,17 +328,37 @@ amd64_icompare_reg_membase: src1:i src2:b len:8
 amd64_set_xmmreg_r4: dest:f src1:f len:14 clob:m
 amd64_set_xmmreg_r8: dest:f src1:f len:14 clob:m
 amd64_save_sp_to_lmf: len:16
-tls_get: dest:i len:16
+tls_get: dest:i len:32
 tls_get_reg: dest:i src1:i len:32
 tls_set: src1:i len:16
 tls_set_reg: src1:i src2:i len:32
 atomic_add_i4: src1:b src2:i dest:i len:32
 atomic_add_i8: src1:b src2:i dest:i len:32
-atomic_exchange_i4: src1:b src2:i dest:a len:32
-atomic_exchange_i8: src1:b src2:i dest:a len:32
+atomic_exchange_i4: src1:b src2:i dest:i len:12
+atomic_exchange_i8: src1:b src2:i dest:i len:12
 atomic_cas_i4: src1:b src2:i src3:a dest:a len:24
 atomic_cas_i8: src1:b src2:i src3:a dest:a len:24
-memory_barrier: len:16
+memory_barrier: len:3
+atomic_load_i1: dest:c src1:b len:9
+atomic_load_u1: dest:c src1:b len:9
+atomic_load_i2: dest:i src1:b len:9
+atomic_load_u2: dest:i src1:b len:9
+atomic_load_i4: dest:i src1:b len:9
+atomic_load_u4: dest:i src1:b len:9
+atomic_load_i8: dest:i src1:b len:9
+atomic_load_u8: dest:i src1:b len:9
+atomic_load_r4: dest:f src1:b len:16
+atomic_load_r8: dest:f src1:b len:16
+atomic_store_i1: dest:b src1:c len:12
+atomic_store_u1: dest:b src1:c len:12
+atomic_store_i2: dest:b src1:i len:12
+atomic_store_u2: dest:b src1:i len:12
+atomic_store_i4: dest:b src1:i len:12
+atomic_store_u4: dest:b src1:i len:12
+atomic_store_i8: dest:b src1:i len:12
+atomic_store_u8: dest:b src1:i len:12
+atomic_store_r4: dest:b src1:f len:18
+atomic_store_r8: dest:b src1:f len:13
 adc: dest:i src1:i src2:i len:3 clob:1
 addcc: dest:i src1:i src2:i len:3 clob:1
 subcc: dest:i src1:i src2:i len:3 clob:1
@@ -511,7 +566,7 @@ vcall2_membase: src1:b len:64 clob:c
 
 dyn_call: src1:i src2:i len:64 clob:c nacl:128
 
-localloc_imm: dest:i len:84
+localloc_imm: dest:i len:96
 
 load_mem: dest:i len:16
 loadi8_mem: dest:i len:16
@@ -701,7 +756,7 @@ extract_i1: dest:i src1:x len:13
 extract_u1: dest:i src1:x len:13
 extract_r8: dest:f src1:x len:5 
 
-iconv_to_r8_raw: dest:f src1:i len:10
+iconv_to_r4_raw: dest:f src1:i len:10
 
 insert_i2: dest:x src1:x src2:i len:6 clob:1