FAQ

On 8 Lis, 19:50, Russ Cox wrote:
What if we make movm handle the C_PBIT the same way as movw and then
update the meaning of .IA and .IB in the assembler?
I don't understood 5c/5g code enough to fix this issue. I tried
something like this:

diff -r b4a8d6b52a2f src/cmd/5a/lex.c
--- a/src/cmd/5a/lex.c Fri Nov 09 02:09:09 2012 +0900
+++ b/src/cmd/5a/lex.c Thu Nov 08 21:56:00 2012 +0100
@@ -270,14 +270,14 @@

".F", LS, C_FBIT,

- ".IBW", LS, C_WBIT|C_PBIT|C_UBIT,
- ".IAW", LS, C_WBIT|C_UBIT,
- ".DBW", LS, C_WBIT|C_PBIT,
- ".DAW", LS, C_WBIT,
- ".IB", LS, C_PBIT|C_UBIT,
- ".IA", LS, C_UBIT,
- ".DB", LS, C_PBIT,
- ".DA", LS, 0,
+ ".DAW", LS, C_WBIT|C_PBIT|C_UBIT,
+ ".DBW", LS, C_WBIT|C_UBIT,
+ ".IAW", LS, C_WBIT|C_PBIT,
+ ".IBW", LS, C_WBIT,
+ ".DA", LS, C_PBIT|C_UBIT,
+ ".DB", LS, C_UBIT,
+ ".IA", LS, C_PBIT,
+ ".IB", LS, 0,

"@", LAT, 0,

diff -r b4a8d6b52a2f src/cmd/5c/txt.c
--- a/src/cmd/5c/txt.c Fri Nov 09 02:09:09 2012 +0900
+++ b/src/cmd/5c/txt.c Thu Nov 08 21:56:00 2012 +0100
@@ -559,7 +559,6 @@
gmovm(Node *f, Node *t, int w)
{
gins(AMOVM, f, t);
- p->scond |= C_UBIT;
if(w)
p->scond |= C_WBIT;
}
diff -r b4a8d6b52a2f src/cmd/5l/asm.c
--- a/src/cmd/5l/asm.c Fri Nov 09 02:09:09 2012 +0900
+++ b/src/cmd/5l/asm.c Thu Nov 08 21:56:00 2012 +0100
@@ -1501,9 +1501,9 @@
if(instoffset != 0)
diag("offset must be zero in MOVM");
o1 |= (p->scond & C_SCOND) << 28;
- if(p->scond & C_PBIT)
+ if(!(p->scond & C_PBIT))
o1 |= 1 << 24;
- if(p->scond & C_UBIT)
+ if(!(p->scond & C_UBIT))
o1 |= 1 << 23;
if(p->scond & C_SBIT)
o1 |= 1 << 22;

but all.bash still fails (but with different error):

pkg/text/template
pkg/go/doc
pkg/go/build
cmd/go
throw: cas64 failed

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 16 of 16 | next ›
Discussion Overview
groupgolang-dev @
categoriesgo
postedNov 2, '12 at 8:36p
activeNov 8, '12 at 9:03p
posts16
users4
websitegolang.org

People

Translate

site design / logo © 2022 Grokbase