src/hotspot/cpu/s390/sharedRuntime_s390.cpp
changeset 54847 59ea39bb2809
parent 52460 f1bb77833b59
child 55343 03d417fd7d9a
child 58678 9cf78a70fa4f
equal deleted inserted replaced
54846:e4049522b074 54847:59ea39bb2809
     1 /*
     1 /*
     2  * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
     3  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5  *
     5  *
     6  * This code is free software; you can redistribute it and/or modify it
     6  * This code is free software; you can redistribute it and/or modify it
     7  * under the terms of the GNU General Public License version 2 only, as
     7  * under the terms of the GNU General Public License version 2 only, as
  1616 
  1616 
  1617     for (int i = 0; i < total_in_args; i++) {
  1617     for (int i = 0; i < total_in_args; i++) {
  1618       out_sig_bt[argc++] = in_sig_bt[i];
  1618       out_sig_bt[argc++] = in_sig_bt[i];
  1619     }
  1619     }
  1620   } else {
  1620   } else {
  1621     Thread* THREAD = Thread::current();
       
  1622     in_elem_bt = NEW_RESOURCE_ARRAY(BasicType, total_in_args);
  1621     in_elem_bt = NEW_RESOURCE_ARRAY(BasicType, total_in_args);
  1623     SignatureStream ss(method->signature());
  1622     SignatureStream ss(method->signature());
  1624     int o = 0;
  1623     int o = 0;
  1625     for (int i = 0; i < total_in_args; i++, o++) {
  1624     for (int i = 0; i < total_in_args; i++, o++) {
  1626       if (in_sig_bt[i] == T_ARRAY) {
  1625       if (in_sig_bt[i] == T_ARRAY) {
  1627         // Arrays are passed as tuples (int, elem*).
  1626         // Arrays are passed as tuples (int, elem*).
  1628         Symbol* atype = ss.as_symbol(CHECK_NULL);
  1627         Symbol* atype = ss.as_symbol();
  1629         const char* at = atype->as_C_string();
  1628         const char* at = atype->as_C_string();
  1630         if (strlen(at) == 2) {
  1629         if (strlen(at) == 2) {
  1631           assert(at[0] == '[', "must be");
  1630           assert(at[0] == '[', "must be");
  1632           switch (at[1]) {
  1631           switch (at[1]) {
  1633             case 'B': in_elem_bt[o]  = T_BYTE; break;
  1632             case 'B': in_elem_bt[o]  = T_BYTE; break;