pike.git
/
src
/
code
/
amd64.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/code/amd64.c:4528:
#define AI (OP_IMPLICIT_A|OP_IMM) #define RM8OP (OP_RM|OP_8|OP_OPS) #define RMOP (OP_RM|OP_OPS) #define RMC8OP (OP_RM|OP_8|OP_OPS|OP_IMPLICIT_C) #define RMCOP (OP_RM|OP_OPS|OP_IMPLICIT_C) #define PCREL (OP_PCREL) #define PCREL8 (OP_PCREL|OP_8) #define RM (OP_RM) static const char *modrm_ops[5][8] = {
-
/* #0: ALU operations */
+
/* #0: ALU operations
(Opcodes 0x80, 0x81, 0x83).
*/
{
-
"add", "or",
NULL
, "and",
+
"add", "or",
"adc"
, "and",
NULL, "sub", NULL, "cmp", }, /* #1: Shift operations */ { NULL, NULL, NULL, NULL, "sal", "shr", NULL, "sar", },
-
/* #2: More ALU operations */
+
/* #2: More ALU operations
(Opcodes 0xf6, 0xf7).
*/
{
-
NULL
, NULL, NULL, "neg",
+
"test"
, NULL, NULL, "neg",
"imul", NULL, NULL, "idiv", },
-
/* #3: Inc/dec */
+
/* #3: Inc/dec
(Opcode 0xff)
*/
{ "inc", "dec", "call", "call", "jmp", "jmp", NULL, NULL, },
-
/* #4:
Test
*/
+
/* #4:
Mov
(Opcodes 0xc6, 0xc7).
*/
{
-
"
test
", NULL, NULL, NULL,
+
"
mov
", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, },
-
+
/* #5: Bit tests (Opcode 0xba) */
+
{
+
NULL, NULL, NULL, NULL,
+
"bt", "bts", "btr", "btc",
+
},
}; struct amd64_opcode { const char *name; unsigned INT64 flags; }; static struct amd64_opcode amd64_opcodes[3][256] = { /* Main table. */ {