* mono/mini/mini-s390.c: Correct ATOMIC operations (incorrect register for CS
authorNeale Ferguson <neale@mono-cvs.ximian.com>
Fri, 9 Jun 2006 19:53:21 +0000 (19:53 -0000)
committerNeale Ferguson <neale@mono-cvs.ximian.com>
Fri, 9 Jun 2006 19:53:21 +0000 (19:53 -0000)
instruction).
* mono/mini/mini-s390.h: Simplify MCONTEXT_GET_BP.
* mono/io-layer/ChangeLog: Move comment from mono/mini
* mono/mini/ChangeLog: Correct comments

svn path=/trunk/mono/; revision=61603

mono/io-layer/ChangeLog
mono/mini/ChangeLog
mono/mini/mini-s390.c
mono/mini/mini-s390.h

index 551e0ae56451b8f382f10c6789298f628e09aae7..026bf9935b862061ad663e5c5aef4011c80ecf23 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-09 Neale Ferguson <neale@sinenomine.net>
+
+       * atomic.h: Fix atomic operations for s390x (not really broken 
+       but changed to use full 64-bit opcodes).
+
 2006-05-24  Dick Porter  <dick@ximian.com>
 
        * processes.c (process_set_current): Don't take an extra reference
index 2c20a58f139377542491732e52a0b8b1043b2698..d2555440455fcce2fc664ef3b6898b6f09303b64 100644 (file)
@@ -1,12 +1,10 @@
 2006-06-09  Neale Ferguson <neale@sinenomine.net>
 
        * mini-exceptions.c (ves_icall_get_frame_info): Fix this function on s390/s390x.
-       * mono/io-layer/atomic.h: Fix atomic operations for s390x (not really broken 
-       but changed to use full 64-bit opcodes).
-       * mono/mini/mini-s390x.c: Correct ATOMIC operations (incorrect register for CS
+       * mini-s390x.c, mini-s390.c: Correct ATOMIC operations (incorrect register for CS
        instruction).
-       * mono/mini/mini-s390x.h: Simplify MCONTEXT_GET_BP.
-       * mono/mini/cpu-s390x.md: Fix max. length values for a couple of instructions.
+       * mini-s390x.h, mini-s390.h: Simplify MCONTEXT_GET_BP.
+       * cpu-s390x.md: Fix max. length values for a couple of instructions.
 
 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
 
index 1e42b090b7b553b9be15f66188107cab932c4f83..173870b9646961e81d4999a5799f403bde1da82d 100644 (file)
@@ -3929,7 +3929,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        s390_lr  (code, s390_r1, ins->sreg2);
                        s390_l   (code, s390_r0, 0, ins->inst_basereg, ins->inst_offset);
                        s390_a   (code, s390_r1, 0, ins->inst_basereg, ins->inst_offset);
-                       s390_cs  (code, s390_r0, s390_r0, ins->inst_basereg, ins->inst_offset);
+                       s390_cs  (code, s390_r0, s390_r1, ins->inst_basereg, ins->inst_offset);
                        s390_jnz (code, -7);
                        s390_lr  (code, ins->dreg, s390_r1);
                }
index 7dd72f9db869d0a53cd5571521eee743a7b3b647..22ccad568aa3013b97ee225dd778dc09ffb52b38 100644 (file)
@@ -254,7 +254,7 @@ typedef struct
 
 #define MONO_INIT_CONTEXT_FROM_FUNC(ctx,func) do {                     \
                MonoS390StackFrame *sframe;                             \
-               __asm__ volatile("l     %0,0(15)" : "=r" (sframe));     \
+               __asm__ volatile("lr    %0,15" : "=r" (sframe));        \
                MONO_CONTEXT_SET_BP ((ctx), sframe->prev);              \
                sframe = (MonoS390StackFrame*)sframe->prev;             \
                MONO_CONTEXT_SET_IP ((ctx), sframe->return_address);    \