1
0
mirror of https://github.com/golang/go synced 2024-11-20 04:54:44 -07:00

cmd/8a: support XMM registers.

R=rsc, golang-dev
CC=golang-dev
https://golang.org/cl/6884046
This commit is contained in:
Rémy Oudompheng 2012-12-06 07:27:38 +01:00
parent 5cb1ed2189
commit 755e13877f
4 changed files with 892 additions and 913 deletions

View File

@ -55,7 +55,7 @@
%token <lval> LTYPE0 LTYPE1 LTYPE2 LTYPE3 LTYPE4 %token <lval> LTYPE0 LTYPE1 LTYPE2 LTYPE3 LTYPE4
%token <lval> LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPES LTYPEM LTYPEI LTYPEG LTYPEXC %token <lval> LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPES LTYPEM LTYPEI LTYPEG LTYPEXC
%token <lval> LCONST LFP LPC LSB %token <lval> LCONST LFP LPC LSB
%token <lval> LBREG LLREG LSREG LFREG %token <lval> LBREG LLREG LSREG LFREG LXREG
%token <dval> LFCONST %token <dval> LFCONST
%token <sval> LSCONST LSP %token <sval> LSCONST LSP
%token <sym> LNAME LLAB LVAR %token <sym> LNAME LLAB LVAR
@ -359,6 +359,11 @@ reg:
$$ = nullgen; $$ = nullgen;
$$.type = $1; $$.type = $1;
} }
| LXREG
{
$$ = nullgen;
$$.type = $1;
}
| LSP | LSP
{ {
$$ = nullgen; $$ = nullgen;

View File

@ -210,6 +210,15 @@ struct
"F6", LFREG, D_F0+6, "F6", LFREG, D_F0+6,
"F7", LFREG, D_F0+7, "F7", LFREG, D_F0+7,
"X0", LXREG, D_X0+0,
"X1", LXREG, D_X0+1,
"X2", LXREG, D_X0+2,
"X3", LXREG, D_X0+3,
"X4", LXREG, D_X0+4,
"X5", LXREG, D_X0+5,
"X6", LXREG, D_X0+6,
"X7", LXREG, D_X0+7,
"CS", LSREG, D_CS, "CS", LSREG, D_CS,
"SS", LSREG, D_SS, "SS", LSREG, D_SS,
"DS", LSREG, D_DS, "DS", LSREG, D_DS,

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,8 @@
/* A Bison parser, made by GNU Bison 2.6.5. */
/* A Bison parser, made by GNU Bison 2.4.1. */ /* Bison interface for Yacc-like parsers in C
/* Skeleton interface for Bison's Yacc-like parsers in C
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -32,6 +30,15 @@
This special exception was added by the Free Software Foundation in This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */ version 2.2 of Bison. */
#ifndef YY_YY_Y_TAB_H_INCLUDED
# define YY_YY_Y_TAB_H_INCLUDED
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
/* Tokens. */ /* Tokens. */
#ifndef YYTOKENTYPE #ifndef YYTOKENTYPE
@ -62,12 +69,13 @@
LLREG = 278, LLREG = 278,
LSREG = 279, LSREG = 279,
LFREG = 280, LFREG = 280,
LFCONST = 281, LXREG = 281,
LSCONST = 282, LFCONST = 282,
LSP = 283, LSCONST = 283,
LNAME = 284, LSP = 284,
LLAB = 285, LNAME = 285,
LVAR = 286 LLAB = 286,
LVAR = 287
}; };
#endif #endif
/* Tokens. */ /* Tokens. */
@ -94,21 +102,20 @@
#define LLREG 278 #define LLREG 278
#define LSREG 279 #define LSREG 279
#define LFREG 280 #define LFREG 280
#define LFCONST 281 #define LXREG 281
#define LSCONST 282 #define LFCONST 282
#define LSP 283 #define LSCONST 283
#define LNAME 284 #define LSP 284
#define LLAB 285 #define LNAME 285
#define LVAR 286 #define LLAB 286
#define LVAR 287
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE typedef union YYSTYPE
{ {
/* Line 2042 of yacc.c */
/* Line 1676 of yacc.c */
#line 37 "a.y" #line 37 "a.y"
Sym *sym; Sym *sym;
@ -123,9 +130,8 @@ typedef union YYSTYPE
Gen2 gen2; Gen2 gen2;
/* Line 2042 of yacc.c */
/* Line 1676 of yacc.c */ #line 135 "y.tab.h"
#line 129 "y.tab.h"
} YYSTYPE; } YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@ -134,4 +140,18 @@ typedef union YYSTYPE
extern YYSTYPE yylval; extern YYSTYPE yylval;
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
#endif /* !YY_YY_Y_TAB_H_INCLUDED */