22 unsigned char val=(ch);
23 (*adr) &= ~(0xFFFF<<(idx*16));
24 (*adr) |= (val) <<(idx*16);
30 __INLINE__
unsigned int operator + (
nmshort& ch){
32 unsigned int b=(*this);
38 __INLINE__
nmshort& operator = (
unsigned int val){
39 (*adr) &= ~(0xFFFF<<(idx*16));
40 (*adr) |= (val&0xFFFF) <<(idx*16);
44 __INLINE__
operator unsigned char(){
45 unsigned char ret=((*adr)>>(idx*4));
76 __INLINE__
unsigned char* x86addr(){
77 return ((
unsigned char*)addr)+indx;
80 addr=(
unsigned int*)p;
84 addr=(
unsigned int*)p;
88 addr=(
unsigned int*)p;
104 __INLINE__
uint16ptr(
unsigned int*p,
int offset){
113 __INLINE__
nmshort& operator [](
int idx){
115 arref.adr=addr+(indx+idx)/2;
116 arref.idx=(indx+idx)%2;
127 __INLINE__
uint16ptr& operator = (
unsigned int* ptr){
133 __INLINE__
bool operator < (
uint16ptr ptr){
142 __INLINE__
bool operator >= (
uint16ptr ptr){
152 __INLINE__
int operator - (
uint16ptr ptr){
182 __INLINE__
unsigned int* ptr(){
188 return (
unsigned int*)-1;
191 __INLINE__
nmshort& operator *(){
223 __INLINE__
uint16ptr operator + (
int idx){
225 tmp.addr=addr+((indx+idx)>>1);
226 tmp.indx=(indx+idx)&0x1;
230 __INLINE__
uint16ptr operator- (
int idx){
232 tmp.addr=addr+((indx-idx)>>1);
233 tmp.indx=(indx-idx)&0x1;
238 __INLINE__
uint16ptr& operator+= (
int idx){
239 addr=addr+((indx+idx)>>1);
244 __INLINE__
uint16ptr& operator-= (
int idx){
245 addr=addr+((indx-idx)>>1);
273 __INLINE__
unsigned int operator== (
unsigned int N){
274 return (((
unsigned int)addr)==N);
277 __INLINE__
bool operator == (
uint16ptr ptr){
278 if (addr==ptr.addr && indx==ptr.indx)
285__INLINE__
uint16ptr nmshort::operator &(){
295 unsigned int data[Y*X/2];
301 arr.addr=data+X*idx/2;
345 memcpy((
void*)dst.x86addr(), (
void*)src.x86addr(),len);
347 if (dst.indx==src.indx){
353 for(
int i=0; i<n; i++){
361 memcpy(dst.addr, src.addr, words);
366 for(
int i=0;i<len;i++){
373 for(
int i=0; i<len; i++){
383__INLINE__
void nmshort_memset (
uint16ptr dst,
int setvalue,
unsigned int len){
387 memset((
void*)dst.x86addr(), setvalue,len);
395 for(
int i=0; i<n; i++){
404 setvalue|=(setvalue<<8);
405 setvalue|=(setvalue<<16);
406 memset(dst.addr, setvalue, words);
411 for(
int i=0;i<len;i++){
Definition: nmshort.h:292