projects
/
YACASL2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
8a76ef9
)
ADDL、SUBL命令の内部構造を変更
author
j8takagi
<j8takagi@nifty.com>
Mon, 1 Feb 2010 23:53:38 +0000
(08:53 +0900)
committer
j8takagi
<j8takagi@nifty.com>
Mon, 1 Feb 2010 23:53:38 +0000
(08:53 +0900)
src/exec.c
patch
|
blob
|
history
diff --git
a/src/exec.c
b/src/exec.c
index
4b3ed78
..
1862973
100644
(file)
--- a/
src/exec.c
+++ b/
src/exec.c
@@
-99,7
+99,7
@@
WORD addl(WORD val0, WORD val1)
FR = 0x0;
temp = val0 + val1;
FR = 0x0;
temp = val0 + val1;
- if(temp > 65535) {
+ if(temp
< 0 || temp
> 65535) {
FR += OF;
}
res = (WORD)(temp & 0xFFFF);
FR += OF;
}
res = (WORD)(temp & 0xFFFF);
@@
-114,21
+114,7
@@
WORD addl(WORD val0, WORD val1)
/* 論理減算。フラグを設定して値を返す */
WORD subl(WORD val0, WORD val1)
{
/* 論理減算。フラグを設定して値を返す */
WORD subl(WORD val0, WORD val1)
{
- long temp;
- WORD res;
- FR = 0x0;
-
- temp = val0 - val1;
- if(temp < 0) {
- FR += OF;
- }
- res = (WORD)(temp & 0xFFFF);
- if((res & 0x8000) > 0) {
- FR += SF;
- } else if(res == 0) {
- FR += ZF;
- }
- return res;
+ return addl(val0, (~val1 + 1));
}
/* 算術比較のフラグ設定。OFは常に0 */
}
/* 算術比較のフラグ設定。OFは常に0 */