src/share/vm/opto/runtime.cpp

changeset 6454
6cc7093e1341
parent 6441
d2907f74462e
parent 5353
b800986664f4
child 6468
cfd05ec74089
     1.1 --- a/src/share/vm/opto/runtime.cpp	Fri Jul 05 22:17:47 2013 +0200
     1.2 +++ b/src/share/vm/opto/runtime.cpp	Thu Jul 11 12:56:29 2013 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -832,6 +832,28 @@
    1.11    return TypeFunc::make(domain, range);
    1.12  }
    1.13  
    1.14 +/**
    1.15 + * int updateBytesCRC32(int crc, byte* b, int len)
    1.16 + */
    1.17 +const TypeFunc* OptoRuntime::updateBytesCRC32_Type() {
    1.18 +  // create input type (domain)
    1.19 +  int num_args      = 3;
    1.20 +  int argcnt = num_args;
    1.21 +  const Type** fields = TypeTuple::fields(argcnt);
    1.22 +  int argp = TypeFunc::Parms;
    1.23 +  fields[argp++] = TypeInt::INT;        // crc
    1.24 +  fields[argp++] = TypePtr::NOTNULL;    // src
    1.25 +  fields[argp++] = TypeInt::INT;        // len
    1.26 +  assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
    1.27 +  const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
    1.28 +
    1.29 +  // result type needed
    1.30 +  fields = TypeTuple::fields(1);
    1.31 +  fields[TypeFunc::Parms+0] = TypeInt::INT; // crc result
    1.32 +  const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields);
    1.33 +  return TypeFunc::make(domain, range);
    1.34 +}
    1.35 +
    1.36  // for cipherBlockChaining calls of aescrypt encrypt/decrypt, four pointers and a length, returning void
    1.37  const TypeFunc* OptoRuntime::cipherBlockChaining_aescrypt_Type() {
    1.38    // create input type (domain)

mercurial