java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret raw data as _Jv_word values...
[gcc.git] / libffi / src / s390 / ffi.c
index b40bdd43fc972c29301bd26252a850ffbdb393e1..9e7d16954f62ca93844bcb0331a366a743c74a83 100644 (file)
@@ -369,6 +369,7 @@ ffi_prep_cif_machdep(ffi_cif *cif)
        cif->flags = FFI390_RET_INT64;
        break;
 
+      case FFI_TYPE_POINTER:
       case FFI_TYPE_INT:
       case FFI_TYPE_UINT32:
       case FFI_TYPE_SINT32:
@@ -682,29 +683,18 @@ ffi_closure_helper_SYSV (ffi_closure *closure,
 #endif
        break;
 
+      case FFI_TYPE_POINTER:
       case FFI_TYPE_UINT32:
-       p_gpr[0] = *(unsigned int *) rvalue;
+      case FFI_TYPE_UINT16:
+      case FFI_TYPE_UINT8:
+       p_gpr[0] = *(unsigned long *) rvalue;
        break;
 
       case FFI_TYPE_INT:
       case FFI_TYPE_SINT32:
-       p_gpr[0] = *(signed int *) rvalue;
-       break;
-
-      case FFI_TYPE_UINT16:
-       p_gpr[0] = *(unsigned short *) rvalue;
-       break;
-
       case FFI_TYPE_SINT16:
-       p_gpr[0] = *(signed short *) rvalue;
-       break;
-
-      case FFI_TYPE_UINT8:
-       p_gpr[0] = *(unsigned char *) rvalue;
-       break;
-
       case FFI_TYPE_SINT8:
-       p_gpr[0] = *(signed char *) rvalue;
+       p_gpr[0] = *(signed long *) rvalue;
        break;
 
       default: