summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9a33d11)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1391
4a8a32a2-be11-0410-ad9d-
d568d2c75423
}
if (SPEC_USIGN(val->type)) {
}
if (SPEC_USIGN(val->type)) {
+ if (uval<=0xffff) {
+ SPEC_LONG(val->type)=0;
+ SPEC_CVAL(val->type).v_uint = uval;
+ }
if (uval<=0xff) {
SPEC_NOUN(val->type)=V_CHAR;
if (uval<=0xff) {
SPEC_NOUN(val->type)=V_CHAR;
- SPEC_LONG(val->type)=0;
- } else {
- if (uval<=0xffff) {
- SPEC_LONG(val->type)=0;
- }
+ } else { // not unsigned
+ if (sval>=-32768) {
+ SPEC_LONG(val->type)=0;
+ SPEC_CVAL(val->type).v_int = sval & 0xffff;
+ }
if (sval>=-128) {
SPEC_NOUN(val->type)=V_CHAR;
SPEC_CVAL(val->type).v_int &= 0xff;
if (sval>=-128) {
SPEC_NOUN(val->type)=V_CHAR;
SPEC_CVAL(val->type).v_int &= 0xff;
+ }
+ } else { // sval>=0
+ SPEC_USIGN(val->type)=1;
+ if (sval<=65535) {
- } else {
- if (sval>=-32768) {
- SPEC_LONG(val->type)=0;
- }
+ SPEC_CVAL(val->type).v_int = sval;
- } else {
- if (sval<=127) {
SPEC_NOUN(val->type)=V_CHAR;
SPEC_NOUN(val->type)=V_CHAR;
- SPEC_LONG(val->type)=0;
- } else {
- if (sval<=32767) {
- SPEC_LONG(val->type)=0;
- }