comparison src/share/vm/opto/memnode.cpp @ 23614:32b682649973 jdk8u75-b04

8132051: Better byte behavior Reviewed-by: coleenp, roland
author kevinw
date Fri, 15 Jan 2016 22:33:15 +0000
parents c1c199dde5c9
children b5f3a471e646
comparison
equal deleted inserted replaced
23613:b374548dcb48 23614:32b682649973
1 /* 1 /*
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
2368 Compile* C = gvn.C; 2368 Compile* C = gvn.C;
2369 assert(C->get_alias_index(adr_type) != Compile::AliasIdxRaw || 2369 assert(C->get_alias_index(adr_type) != Compile::AliasIdxRaw ||
2370 ctl != NULL, "raw memory operations should have control edge"); 2370 ctl != NULL, "raw memory operations should have control edge");
2371 2371
2372 switch (bt) { 2372 switch (bt) {
2373 case T_BOOLEAN: 2373 case T_BOOLEAN: val = gvn.transform(new (C) AndINode(val, gvn.intcon(0x1))); // Fall through to T_BYTE case
2374 case T_BYTE: return new (C) StoreBNode(ctl, mem, adr, adr_type, val, mo); 2374 case T_BYTE: return new (C) StoreBNode(ctl, mem, adr, adr_type, val, mo);
2375 case T_INT: return new (C) StoreINode(ctl, mem, adr, adr_type, val, mo); 2375 case T_INT: return new (C) StoreINode(ctl, mem, adr, adr_type, val, mo);
2376 case T_CHAR: 2376 case T_CHAR:
2377 case T_SHORT: return new (C) StoreCNode(ctl, mem, adr, adr_type, val, mo); 2377 case T_SHORT: return new (C) StoreCNode(ctl, mem, adr, adr_type, val, mo);
2378 case T_LONG: return new (C) StoreLNode(ctl, mem, adr, adr_type, val, mo); 2378 case T_LONG: return new (C) StoreLNode(ctl, mem, adr, adr_type, val, mo);