?? import_file.awk
字號:
BEGIN { getline; while (!match($0, "^/[/*] static char cvs_id")) { print; getline; } getline; while (!match($0, "^// WARRANTY DISCLAIMER")) { print; if (!getline) { break; } } if (getline) { printf \"// Redistribution and use in source and binary forms, with or without\n" \"// modification, are permitted provided that the following conditions are\n" \"// met:\n" \"//\n" \"// * Redistributions of source code must retain the above copyright\n" \"// notice, this list of conditions and the following disclaimer.\n" \"//\n" \"// * Redistributions in binary form must reproduce the above copyright\n" \"// notice, this list of conditions and the following disclaimer in the\n" \"// documentation and/or other materials provided with the distribution.\n" \"//\n" \"// * The name of Intel Corporation may not be used to endorse or promote\n" \"// products derived from this software without specific prior written\n" \"// permission.\n\n"; if (LICENSE_ONLY == "y") { do { print; } while (getline); } }}/^[.]data/ { print "RODATA"; next;}/^([a-zA-Z_0-9]*_(tb[l0-9]|Tt|[tT]able|data|low|coeffs|constants|CONSTANTS|reduction|Stirling)(_?([1-9cdimpqstPQT]+|tail))?|(Constants|Poly|coeff)_.+|(double_sin_?cos|double_cis)[fl]?_.+):/ { table_name=substr($1,1,length($1)-1); printf "LOCAL_OBJECT_START(%s)\n", table_name; getline; while (!match($0, "^[ \t]*data")) { print; getline; } while (match($0, "(//|^[ \t]*data)")) { print; getline; } printf "LOCAL_OBJECT_END(%s)\n\n", table_name; next;}/^[.]proc[ \t]+__libm_(error_region|callout)/ { printf "LOCAL_LIBM_ENTRY(%s)\n", $2; getline; next;}/^[.]endp[ \t]+__libm_(error_region|callout)/ { printf "LOCAL_LIBM_END(%s)\n", $2; next;}/^[.]global/ { split($2, part, "#"); name=part[1]; if (match(name, "^"FUNC"$")) { next; }}/^[.]proc/ { split($2, part, "#"); name=part[1]; if (match(name, "^"FUNC"$")) { local_funcs=("^(" \ "cis|cisf|cisl" \ "|cabs|cabsf|cabsl" \ "|cot|cotf|cotl" \ ")$"); ieee754_funcs=("^(" \ "atan2|atan2f|atan2l|atanl" \ "|cos|cosf|cosl" \ "|cosh|coshf|coshl" \ "|exp|expf|expl" \ "|exp10|exp10f|exp10l" \ "|expm1|expm1f|expm1l" \ "|fmod|fmodf|fmodl" \ "|hypot|hypotf|hypotl" \ "|fabs|fabsf|fabsl" \ "|floor|floorf|floorl" \ "|log1p|log1pf|log1pl" \ "|log|log10|log10f|log10l|log2l|logf|logl" \ "|remainder|remainderf|remainderl|" \ "|rint|rintf|rintl|" \ "|scalb|scalbf|scalbl" \ "|sin|sinf|sinl" \ "|sincos|sincosf|sincosl" \ "|sinh|sinhf|sinhl" \ "|sqrt|sqrtf|sqrtl" \ "|tan|tanf|tanl" \ ")$"); if (match(name, ieee754_funcs)) { type="GLOBAL_IEEE754"; } else if (match (name, local_funcs)) { type="LOCAL_LIBM"; } else { type="GLOBAL_LIBM"; } printf "%s_ENTRY(%s)\n", type, name; getline; while (!match($0, "^"name"#?:")) { getline; } getline; while (!match($0, "^.endp")) { print getline; } printf "%s_END(%s)\n", type, name; if (match(name, "^exp10[fl]?$")) { t=substr(name,6) printf "weak_alias (exp10%s, pow10%s)\n", t, t } next; }}/^[a-zA-Z_]+:/ { split($1, part, ":"); name=part[1]; if (match(name, "^"FUNC"$")) { printf "GLOBAL_LIBM_ENTRY(%s)\n", name; getline; while (!match($0, "^"name"#?:")) { getline; } getline; while (!match($0, "^.endp")) { print getline; } getline; printf "GLOBAL_LIBM_END(%s)\n", name; next; }}{ print }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -