diff options
| author | Roland Dreier <rdreier@cisco.com> | 2009-12-16 20:39:48 -0500 |
|---|---|---|
| committer | H. Peter Anvin <hpa@zytor.com> | 2009-12-17 10:03:21 -0500 |
| commit | 4beb3d6d144c41525541cce2b611858b2645c725 (patch) | |
| tree | 35695ec54ba939ae996fa28eb0bf1377c8c64da0 | |
| parent | c051346b7db27aaf674b8f3b4955240580b2a58a (diff) | |
x86: Don't use POSIX character classes in gen-insn-attr-x86.awk
Not all awk implementations (including the default awk in Ubuntu 9.10)
support POSIX character classes. Since x86-opcode-map.txt is plain
ASCII, we can just use explicit ranges for lower case, alphabetic, and
alphanumeric characters instead.
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Acked-by: Masami Hiramatsu <mhiramat@redhat.com>
LKML-Reference: <adabphy750b.fsf@roland-alpha.cisco.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| -rw-r--r-- | arch/x86/tools/gen-insn-attr-x86.awk | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86/tools/gen-insn-attr-x86.awk b/arch/x86/tools/gen-insn-attr-x86.awk index 7a6850683c34..eaf11f52fc0b 100644 --- a/arch/x86/tools/gen-insn-attr-x86.awk +++ b/arch/x86/tools/gen-insn-attr-x86.awk | |||
| @@ -6,8 +6,6 @@ | |||
| 6 | 6 | ||
| 7 | # Awk implementation sanity check | 7 | # Awk implementation sanity check |
| 8 | function check_awk_implement() { | 8 | function check_awk_implement() { |
| 9 | if (!match("abc", "[[:lower:]]+")) | ||
| 10 | return "Your awk doesn't support charactor-class." | ||
| 11 | if (sprintf("%x", 0) != "0") | 9 | if (sprintf("%x", 0) != "0") |
| 12 | return "Your awk has a printf-format problem." | 10 | return "Your awk has a printf-format problem." |
| 13 | return "" | 11 | return "" |
| @@ -44,12 +42,12 @@ BEGIN { | |||
| 44 | delete gtable | 42 | delete gtable |
| 45 | delete atable | 43 | delete atable |
| 46 | 44 | ||
| 47 | opnd_expr = "^[[:alpha:]/]" | 45 | opnd_expr = "^[A-Za-z/]" |
| 48 | ext_expr = "^\\(" | 46 | ext_expr = "^\\(" |
| 49 | sep_expr = "^\\|$" | 47 | sep_expr = "^\\|$" |
| 50 | group_expr = "^Grp[[:alnum:]]+" | 48 | group_expr = "^Grp[0-9A-Za-z]+" |
| 51 | 49 | ||
| 52 | imm_expr = "^[IJAO][[:lower:]]" | 50 | imm_expr = "^[IJAO][a-z]" |
| 53 | imm_flag["Ib"] = "INAT_MAKE_IMM(INAT_IMM_BYTE)" | 51 | imm_flag["Ib"] = "INAT_MAKE_IMM(INAT_IMM_BYTE)" |
| 54 | imm_flag["Jb"] = "INAT_MAKE_IMM(INAT_IMM_BYTE)" | 52 | imm_flag["Jb"] = "INAT_MAKE_IMM(INAT_IMM_BYTE)" |
| 55 | imm_flag["Iw"] = "INAT_MAKE_IMM(INAT_IMM_WORD)" | 53 | imm_flag["Iw"] = "INAT_MAKE_IMM(INAT_IMM_WORD)" |
| @@ -62,7 +60,7 @@ BEGIN { | |||
| 62 | imm_flag["Ob"] = "INAT_MOFFSET" | 60 | imm_flag["Ob"] = "INAT_MOFFSET" |
| 63 | imm_flag["Ov"] = "INAT_MOFFSET" | 61 | imm_flag["Ov"] = "INAT_MOFFSET" |
| 64 | 62 | ||
| 65 | modrm_expr = "^([CDEGMNPQRSUVW/][[:lower:]]+|NTA|T[012])" | 63 | modrm_expr = "^([CDEGMNPQRSUVW/][a-z]+|NTA|T[012])" |
| 66 | force64_expr = "\\([df]64\\)" | 64 | force64_expr = "\\([df]64\\)" |
| 67 | rex_expr = "^REX(\\.[XRWB]+)*" | 65 | rex_expr = "^REX(\\.[XRWB]+)*" |
| 68 | fpu_expr = "^ESC" # TODO | 66 | fpu_expr = "^ESC" # TODO |
