Revision: 4737
Author: [email protected]
Date: Thu May 27 00:31:10 2010
Log: ARM: Default to use unaligned accesses in the simulator
Support building with or without unaligned accesses by using scons flag
simulatorunalignedaccesses.
$ scons simulator=arm simulatorunalignedaccesses=off
$ scons simulator=arm simulatorunalignedaccesses=on
If simulatorunalignedaccesses is not specified (or specified as default)
the default is to use unaligned accesses.
Review URL: http://codereview.chromium.org/2218003
http://code.google.com/p/v8/source/detail?r=4737
Modified:
/branches/bleeding_edge/SConstruct
/branches/bleeding_edge/src/arm/constants-arm.h
=======================================
--- /branches/bleeding_edge/SConstruct Fri May 21 02:23:33 2010
+++ /branches/bleeding_edge/SConstruct Thu May 27 00:31:10 2010
@@ -204,10 +204,16 @@
'LINKFLAGS': ['-m32']
},
'arch:arm': {
- 'CPPDEFINES': ['V8_TARGET_ARCH_ARM']
+ 'CPPDEFINES': ['V8_TARGET_ARCH_ARM'],
+ 'unalignedaccesses:on' : {
+ 'CPPDEFINES' : ['CAN_USE_UNALIGNED_ACCESSES=1']
+ },
+ 'unalignedaccesses:off' : {
+ 'CPPDEFINES' : ['CAN_USE_UNALIGNED_ACCESSES=0']
+ }
},
'simulator:arm': {
- 'CCFLAGS': ['-m32', '-DCAN_USE_UNALIGNED_ACCESSES=1'],
+ 'CCFLAGS': ['-m32'],
'LINKFLAGS': ['-m32']
},
'arch:mips': {
@@ -734,6 +740,11 @@
'default': 'none',
'help': 'build with simulator'
},
+ 'unalignedaccesses': {
+ 'values': ['default', 'on', 'off'],
+ 'default': 'default',
+ 'help': 'set whether the ARM target supports unaligned accesses'
+ },
'disassembler': {
'values': ['on', 'off'],
'default': 'off',
@@ -852,6 +863,10 @@
Abort("Shared Object soname not applicable for static library.")
if env['os'] != 'win32' and env['pgo'] != 'off':
Abort("Profile guided optimization only supported on Windows.")
+ if not (env['arch'] == 'arm' or env['simulator'] == 'arm') and
('unalignedaccesses' in ARGUMENTS):
+ print env['arch']
+ print env['simulator']
+ Abort("Option unalignedaccesses only supported for the ARM
architecture.")
for (name, option) in SIMPLE_OPTIONS.iteritems():
if (not option.get('default')) and (name not in ARGUMENTS):
message = ("A value for option %s must be specified (%s)." %
=======================================
--- /branches/bleeding_edge/src/arm/constants-arm.h Thu May 6 05:49:12 2010
+++ /branches/bleeding_edge/src/arm/constants-arm.h Thu May 27 00:31:10 2010
@@ -66,10 +66,15 @@
# define CAN_USE_THUMB_INSTRUCTIONS 1
#endif
-// Simulator should support ARM5 instructions.
+// Simulator should support ARM5 instructions and unaligned access by
default.
#if !defined(__arm__)
# define CAN_USE_ARMV5_INSTRUCTIONS 1
# define CAN_USE_THUMB_INSTRUCTIONS 1
+
+# ifndef CAN_USE_UNALIGNED_ACCESSES
+# define CAN_USE_UNALIGNED_ACCESSES 1
+# endif
+
#endif
#if CAN_USE_UNALIGNED_ACCESSES
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev