moves.
for _, plat in ipairs(vars.plats) do
+ acklibrary {
+ name = "headers_"..plat,
+ hdrs = { "./*.h" }
+ }
+
acklibrary {
name = "lib_"..plat,
srcs = {
},
vars = { plat = plat },
deps = {
- "h+emheaders"
+ "h+emheaders",
+ "+headers_"..plat,
}
}
end
-/* 68020 desciptor table for ACK target optimizer */
+/* PowerPC desciptor table for ACK target optimizer */
MAXOP 3;
+LABEL_STARTER '.';
%%;
addi X, X, 0 -> ;
addis X, X, 0 -> ;
+mr X, X -> ;
+fmr X, X -> ;
+
or X, Y, Z : or. X, X, X -> or. X, Y, Z ;
+b X : labdef X -> labdef X ;
+
+/* IFFALSE=4, IFTRUE=12, ALWAYS=20 */
+/* LT=0, GT=1, EQ=2, OV=3 */
+
%%;
static const char* ilabel_to_str(label l)
{
assert(current_proc != NULL);
- return aprintf("__%s_I%d", current_proc->name, l);
+ return aprintf(".%s_I%d", current_proc->name, l);
}
static const char* dlabel_to_str(label l)
{
- return aprintf("__D%d", l);
+ return aprintf(".D%d", l);
}
static void terminate_block(void)
arch = "powerpc",
}
+build_top {
+ name = "top",
+ arch = "powerpc",
+}
+
return installable {
name = "tools",
map = {
["$(PLATDEP)/linuxppc/as"] = "+as",
["$(PLATDEP)/linuxppc/ncg"] = "+ncg",
["$(PLATDEP)/linuxppc/mcg"] = "+mcg",
+ ["$(PLATDEP)/linuxppc/top"] = "+top",
["$(PLATIND)/descr/linuxppc"] = "./descr",
"util/opt+pkg",
}
stdout
need .e
end
-# FIXME(dtrg): not working yet
-#name asopt
-# from .s
-# to .so
-# program {EM}/lib/ack/{PLATFORM}/top
-# args
-# optimizer
-# stdin
-# stdout
-#end
+name asopt
+ from .s
+ to .so
+ program {EM}/lib/ack/{PLATFORM}/top
+ args
+ optimizer
+ stdin
+ stdout
+end
name as
from .s.so
to .o