Mercurial > hg > graal-jvmci-8
comparison src/cpu/sparc/vm/sparc.ad @ 14270:9918c6fb4770
8032207: C2: assert(VerifyOops || MachNode::size(ra_) <= (3+1)*4) failed: bad fixed size
Summary: Fix the sizing of loadUS2L_immI16 and loadI2L_immI
Reviewed-by: kvn, azeemj
author | iveresov |
---|---|
date | Fri, 17 Jan 2014 18:09:08 -0800 |
parents | 00f5eff62d18 |
children | 7e8bd81ce93e |
comparison
equal
deleted
inserted
replaced
14264:4d7678fb8a27 | 14270:9918c6fb4770 |
---|---|
5724 instruct loadUS2L_immI16(iRegL dst, memory mem, immI16 mask, iRegL tmp) %{ | 5724 instruct loadUS2L_immI16(iRegL dst, memory mem, immI16 mask, iRegL tmp) %{ |
5725 match(Set dst (ConvI2L (AndI (LoadUS mem) mask))); | 5725 match(Set dst (ConvI2L (AndI (LoadUS mem) mask))); |
5726 effect(TEMP dst, TEMP tmp); | 5726 effect(TEMP dst, TEMP tmp); |
5727 ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST); | 5727 ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST); |
5728 | 5728 |
5729 size((3+1)*4); // set may use two instructions. | |
5730 format %{ "LDUH $mem,$dst\t! ushort/char & 16-bit mask -> long\n\t" | 5729 format %{ "LDUH $mem,$dst\t! ushort/char & 16-bit mask -> long\n\t" |
5731 "SET $mask,$tmp\n\t" | 5730 "SET $mask,$tmp\n\t" |
5732 "AND $dst,$tmp,$dst" %} | 5731 "AND $dst,$tmp,$dst" %} |
5733 ins_encode %{ | 5732 ins_encode %{ |
5734 Register Rdst = $dst$$Register; | 5733 Register Rdst = $dst$$Register; |
5868 instruct loadI2L_immI(iRegL dst, memory mem, immI mask, iRegL tmp) %{ | 5867 instruct loadI2L_immI(iRegL dst, memory mem, immI mask, iRegL tmp) %{ |
5869 match(Set dst (ConvI2L (AndI (LoadI mem) mask))); | 5868 match(Set dst (ConvI2L (AndI (LoadI mem) mask))); |
5870 effect(TEMP dst, TEMP tmp); | 5869 effect(TEMP dst, TEMP tmp); |
5871 ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST); | 5870 ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST); |
5872 | 5871 |
5873 size((3+1)*4); // set may use two instructions. | |
5874 format %{ "LDUW $mem,$dst\t! int & 32-bit mask -> long\n\t" | 5872 format %{ "LDUW $mem,$dst\t! int & 32-bit mask -> long\n\t" |
5875 "SET $mask,$tmp\n\t" | 5873 "SET $mask,$tmp\n\t" |
5876 "AND $dst,$tmp,$dst" %} | 5874 "AND $dst,$tmp,$dst" %} |
5877 ins_encode %{ | 5875 ins_encode %{ |
5878 Register Rdst = $dst$$Register; | 5876 Register Rdst = $dst$$Register; |