Lines Matching refs:intn

87 intnum_frombv(/*@out@*/ yasm_intnum *intn, wordptr bv)
90 intn->type = INTNUM_L;
91 intn->val.l = (long)BitVector_Chunk_Read(bv, 31, 0);
100 intn->type = INTNUM_BV;
101 intn->val.bv = BitVector_Clone(bv);
103 intn->type = INTNUM_L;
104 intn->val.l = -((long)ul);
107 intn->type = INTNUM_BV;
108 intn->val.bv = BitVector_Clone(bv);
116 intnum_tobv(/*@returned@*/ wordptr bv, const yasm_intnum *intn)
118 if (intn->type == INTNUM_BV)
119 return intn->val.bv;
122 if (intn->val.l >= 0)
123 BitVector_Chunk_Store(bv, 32, 0, (unsigned long)intn->val.l);
125 BitVector_Chunk_Store(bv, 32, 0, (unsigned long)-intn->val.l);
134 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
148 intnum_frombv(intn, conv_bv);
149 return intn;
155 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
168 intnum_frombv(intn, conv_bv);
169 return intn;
175 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
188 intnum_frombv(intn, conv_bv);
189 return intn;
195 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
208 intnum_frombv(intn, conv_bv);
209 return intn;
216 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
226 intn->type = INTNUM_BV;
228 intn->val.l = 0;
229 intn->type = INTNUM_L;
234 intn->val.l |= ((unsigned long)str[2]) & 0xff;
235 intn->val.l <<= 8;
238 intn->val.l |= ((unsigned long)str[1]) & 0xff;
239 intn->val.l <<= 8;
242 intn->val.l |= ((unsigned long)str[0]) & 0xff;
252 intn->val.bv = BitVector_Clone(conv_bv);
255 return intn;
261 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
272 intn->type = INTNUM_BV;
274 intn->val.l = 0;
275 intn->type = INTNUM_L;
282 intn->val.l |= ((unsigned long)str[i++]) & 0xff;
283 intn->val.l <<= 8;
286 intn->val.l |= ((unsigned long)str[i++]) & 0xff;
287 intn->val.l <<= 8;
290 intn->val.l |= ((unsigned long)str[i++]) & 0xff;
300 intn->val.bv = BitVector_Clone(conv_bv);
303 return intn;
310 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
314 intn->val.bv = BitVector_Create(BITVECT_NATIVE_SIZE, TRUE);
315 intn->type = INTNUM_BV;
316 BitVector_Chunk_Store(intn->val.bv, 32, 0, i);
318 intn->val.l = (long)i;
319 intn->type = INTNUM_L;
322 return intn;
328 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
330 intn->val.l = i;
331 intn->type = INTNUM_L;
333 return intn;
340 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
361 intnum_frombv(intn, conv_bv);
362 return intn;
369 yasm_intnum *intn = yasm_xmalloc(sizeof(yasm_intnum));
390 intnum_frombv(intn, conv_bv);
391 return intn;
395 yasm_intnum_copy(const yasm_intnum *intn)
399 switch (intn->type) {
401 n->val.l = intn->val.l;
404 n->val.bv = BitVector_Clone(intn->val.bv);
407 n->type = intn->type;
413 yasm_intnum_destroy(yasm_intnum *intn)
415 if (intn->type == INTNUM_BV)
416 BitVector_Destroy(intn->val.bv);
417 yasm_xfree(intn);
631 yasm_intnum_zero(yasm_intnum *intn)
633 yasm_intnum_set_int(intn, 0);
637 yasm_intnum_set(yasm_intnum *intn, const yasm_intnum *val)
639 if (intn->type == val->type) {
642 intn->val.l = val->val.l;
645 BitVector_Copy(intn->val.bv, val->val.bv);
651 BitVector_Destroy(intn->val.bv);
652 intn->val.l = val->val.l;
655 intn->val.bv = BitVector_Clone(val->val.bv);
658 intn->type = val->type;
663 yasm_intnum_set_uint(yasm_intnum *intn, unsigned long val)
666 if (intn->type != INTNUM_BV) {
667 intn->val.bv = BitVector_Create(BITVECT_NATIVE_SIZE, TRUE);
668 intn->type = INTNUM_BV;
670 BitVector_Chunk_Store(intn->val.bv, 32, 0, val);
672 if (intn->type == INTNUM_BV) {
673 BitVector_Destroy(intn->val.bv);
674 intn->type = INTNUM_L;
676 intn->val.l = (long)val;
681 yasm_intnum_set_int(yasm_intnum *intn, long val)
683 if (intn->type == INTNUM_BV)
684 BitVector_Destroy(intn->val.bv);
685 intn->type = INTNUM_L;
686 intn->val.l = val;
690 yasm_intnum_is_zero(const yasm_intnum *intn)
692 return (intn->type == INTNUM_L && intn->val.l == 0);
696 yasm_intnum_is_pos1(const yasm_intnum *intn)
698 return (intn->type == INTNUM_L && intn->val.l == 1);
702 yasm_intnum_is_neg1(const yasm_intnum *intn)
704 return (intn->type == INTNUM_L && intn->val.l == -1);
708 yasm_intnum_sign(const yasm_intnum *intn)
710 if (intn->type == INTNUM_L) {
711 if (intn->val.l == 0)
713 else if (intn->val.l < 0)
718 return BitVector_Sign(intn->val.bv);
722 yasm_intnum_get_uint(const yasm_intnum *intn)
724 switch (intn->type) {
726 if (intn->val.l < 0)
728 return (unsigned long)intn->val.l;
730 if (BitVector_msb_(intn->val.bv))
732 if (Set_Max(intn->val.bv) > 32)
734 return BitVector_Chunk_Read(intn->val.bv, 32, 0);
743 yasm_intnum_get_int(const yasm_intnum *intn)
745 switch (intn->type) {
747 return intn->val.l;
749 if (BitVector_msb_(intn->val.bv)) {
755 BitVector_Negate(conv_bv, intn->val.bv);
775 yasm_intnum_get_sized(const yasm_intnum *intn, unsigned char *ptr,
790 if (warn<0 && !yasm_intnum_check_size(intn, valsize, rshift, 1))
794 if (warn>0 && !yasm_intnum_check_size(intn, valsize, rshift, 2))
806 op2 = intnum_tobv(op2static, intn);
840 yasm_intnum_check_size(const yasm_intnum *intn, size_t size, size_t rshift,
846 if (intn->type == INTNUM_BV) {
849 BitVector_Copy(val, intn->val.bv);
851 val = intn->val.bv;
853 val = intnum_tobv(conv_bv, intn);
883 yasm_intnum_in_range(const yasm_intnum *intn, long low, long high)
885 wordptr val = intnum_tobv(result, intn);
962 yasm_intnum_get_leb128(const yasm_intnum *intn, unsigned char *ptr, int sign)
967 if (intn->type == INTNUM_L && intn->val.l == 0) {
973 val = intnum_tobv(op1static, intn);
979 yasm_intnum_size_leb128(const yasm_intnum *intn, int sign)
984 if (intn->type == INTNUM_L && intn->val.l == 0) {
989 val = intnum_tobv(op1static, intn);
1063 yasm_intnum_get_str(const yasm_intnum *intn)
1067 switch (intn->type) {
1070 sprintf((char *)s, "%ld", intn->val.l);
1074 return (char *)BitVector_to_Dec(intn->val.bv);
1082 yasm_intnum_print(const yasm_intnum *intn, FILE *f)
1086 switch (intn->type) {
1088 fprintf(f, "0x%lx", intn->val.l);
1091 s = BitVector_to_Hex(intn->val.bv);