You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(12) |
2
(9) |
|
3
(23) |
4
(24) |
5
(9) |
6
(7) |
7
(5) |
8
(2) |
9
(6) |
|
10
(5) |
11
(3) |
12
(11) |
13
(4) |
14
|
15
(3) |
16
(4) |
|
17
(3) |
18
(6) |
19
|
20
(1) |
21
(9) |
22
(8) |
23
(1) |
|
24
|
25
(2) |
26
(3) |
27
(16) |
28
(17) |
29
(22) |
30
(7) |
|
31
(4) |
|
|
|
|
|
|
|
From: Maynard J. <may...@us...> - 2010-01-06 16:04:02
|
Julian Seward wrote: >> Yes, a similar hack fixed the three leak testcases that I was seeing the >> problem with. > > Well, good. However .. > >> __asm__ __volatile__( "li 3, 0" ); >> __asm__ __volatile__( "li 4, 0" ); >> __asm__ __volatile__( "li 5, 0" ); >> __asm__ __volatile__( "li 6, 0" ); >> __asm__ __volatile__( "li 7, 0" ); >> __asm__ __volatile__( "li 8, 0" ); >> __asm__ __volatile__( "li 9, 0" ); >> __asm__ __volatile__( "li 10, 0" ); >> __asm__ __volatile__( "li 11, 0" ); >> __asm__ __volatile__( "li 12, 0" ); > > ehm .. don't you need to tell gcc that the asms trash those regs? > Otherwise it has no way to know that. If the program doesn't > segfault as-is it's only by luck, in that there are no live values > in those regs. Viz: > > __asm__ __volatile__( "li 3, 0" : : :/*trash*/"r3" ); heh, yeah. I'll freely admit that assembly-level coding ain't my strong suit. I discussed this with our gcc team lead, and he agreed the "trash" business is necessary. I added it to the leak testcases, and they passed. So here's the revised ppc asm code: __asm__ __volatile__( "li 3, 0" : : :/*trash*/"r3" ); __asm__ __volatile__( "li 4, 0" : : :/*trash*/"r4" ); __asm__ __volatile__( "li 5, 0" : : :/*trash*/"r5" ); __asm__ __volatile__( "li 6, 0" : : :/*trash*/"r6" ); __asm__ __volatile__( "li 7, 0" : : :/*trash*/"r7" ); __asm__ __volatile__( "li 8, 0" : : :/*trash*/"r8" ); __asm__ __volatile__( "li 9, 0" : : :/*trash*/"r9" ); __asm__ __volatile__( "li 10, 0" : : :/*trash*/"r10" ); __asm__ __volatile__( "li 11, 0" : : :/*trash*/"r11" ); __asm__ __volatile__( "li 12, 0" : : :/*trash*/"r12" ); -Maynard > > etc. > > J |
|
From: Julian S. <js...@ac...> - 2010-01-06 16:02:56
|
> Would it be OK to commit the exp-bbv arm test cases? Yes, please do. J |
|
From: <sv...@va...> - 2010-01-06 15:22:19
|
Author: vince
Date: 2010-01-06 15:22:11 +0000 (Wed, 06 Jan 2010)
New Revision: 11021
Log:
Add the arm exp-bbv tests Makefile to the main configure.in file.
Modified:
trunk/configure.in
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2010-01-06 15:15:28 UTC (rev 11020)
+++ trunk/configure.in 2010-01-06 15:22:11 UTC (rev 11021)
@@ -1933,6 +1933,7 @@
exp-bbv/tests/x86-linux/Makefile
exp-bbv/tests/amd64-linux/Makefile
exp-bbv/tests/ppc32-linux/Makefile
+ exp-bbv/tests/arm-linux/Makefile
])
AC_OUTPUT
|
|
From: <sv...@va...> - 2010-01-06 15:15:38
|
Author: vince Date: 2010-01-06 15:15:28 +0000 (Wed, 06 Jan 2010) New Revision: 11020 Log: Add arm regression tests for exp-bbv tool. Added: trunk/exp-bbv/tests/arm-linux/ trunk/exp-bbv/tests/arm-linux/Makefile.am trunk/exp-bbv/tests/arm-linux/filter_stderr trunk/exp-bbv/tests/arm-linux/ll.S trunk/exp-bbv/tests/arm-linux/ll.post.exp trunk/exp-bbv/tests/arm-linux/ll.stderr.exp trunk/exp-bbv/tests/arm-linux/ll.stdout.exp trunk/exp-bbv/tests/arm-linux/ll.vgtest trunk/exp-bbv/tests/arm-linux/million.S trunk/exp-bbv/tests/arm-linux/million.post.exp trunk/exp-bbv/tests/arm-linux/million.stderr.exp trunk/exp-bbv/tests/arm-linux/million.vgtest Modified: trunk/exp-bbv/tests/Makefile.am Modified: trunk/exp-bbv/tests/Makefile.am =================================================================== --- trunk/exp-bbv/tests/Makefile.am 2010-01-06 11:08:18 UTC (rev 11019) +++ trunk/exp-bbv/tests/Makefile.am 2010-01-06 15:15:28 UTC (rev 11020) @@ -16,8 +16,11 @@ if VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX SUBDIRS += ppc32-linux endif +if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX +SUBDIRS += arm-linux +endif -DIST_SUBDIRS = x86 x86-linux amd64-linux ppc32-linux . +DIST_SUBDIRS = x86 x86-linux amd64-linux ppc32-linux arm-linux . dist_noinst_SCRIPTS = \ filter_bb \ Added: trunk/exp-bbv/tests/arm-linux/Makefile.am =================================================================== --- trunk/exp-bbv/tests/arm-linux/Makefile.am (rev 0) +++ trunk/exp-bbv/tests/arm-linux/Makefile.am 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,22 @@ +include $(top_srcdir)/Makefile.tool-tests.am + +dist_noinst_SCRIPTS = filter_stderr + +check_PROGRAMS = \ + million ll + +EXTRA_DIST = \ + ll.stderr.exp \ + ll.stdout.exp \ + ll.post.exp \ + ll.vgtest \ + million.stderr.exp \ + million.post.exp \ + million.vgtest + +AM_CCASFLAGS += -ffreestanding + +LDFLAGS += -nostartfiles -nodefaultlibs + +ll_SOURCES = ll.S +million_SOURCES = million.S Added: trunk/exp-bbv/tests/arm-linux/filter_stderr =================================================================== --- trunk/exp-bbv/tests/arm-linux/filter_stderr (rev 0) +++ trunk/exp-bbv/tests/arm-linux/filter_stderr 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,5 @@ +#! /bin/sh + +../filter_stderr + + Property changes on: trunk/exp-bbv/tests/arm-linux/filter_stderr ___________________________________________________________________ Name: svn:executable + * Added: trunk/exp-bbv/tests/arm-linux/ll.S =================================================================== --- trunk/exp-bbv/tests/arm-linux/ll.S (rev 0) +++ trunk/exp-bbv/tests/arm-linux/ll.S 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,493 @@ +# +# linux_logo in ARM assembly language +# based on the code from ll_asm-0.41 +# +# By Vince Weaver <vince _at_ deater.net> +# +# Modified to remove non-deterministic system calls +# And to avoid reading from /proc + +.include "../logo.include" + +# offsets into the results returned by the uname syscall +.equ U_SYSNAME,0 +.equ U_NODENAME,65 +.equ U_RELEASE,65*2 +.equ U_VERSION,(65*3) +.equ U_MACHINE,(65*4) +.equ U_DOMAINNAME,65*5 + +# offset into the results returned by the sysinfo syscall +.equ S_TOTALRAM,16 + +# Sycscalls +.equ SYSCALL_EXIT, 1 +.equ SYSCALL_WRITE, 4 + +# +.equ STDIN,0 +.equ STDOUT,1 +.equ STDERR,2 + + .globl _start +_start: + ldr r11,data_addr + ldr r12,bss_addr + + #========================= + # PRINT LOGO + #========================= + +# LZSS decompression algorithm implementation +# by Stephan Walter 2002, based on LZSS.C by Haruhiko Okumura 1989 +# optimized some more by Vince Weaver + + ldr r1,out_addr @ buffer we are printing to + + mov r2,#(N-F) @ R + + add r3,r11,#(logo-data_begin) + @ r3 points to logo data + ldr r8,logo_end_addr + @ r8 points to logo end + ldr r9,text_addr @ r9 points to text buf + +decompression_loop: + ldrb r4,[r3],#+1 @ load a byte, increment pointer + + mov r5,#0xff @ load top as a hackish 8-bit counter + orr r5,r4,r5,LSL #8 @ shift 0xff left by 8 and or in the byte we loaded + +test_flags: + cmp r3,r8 @ have we reached the end? + bge done_logo @ if so, exit + + lsrs r5,#1 @ shift bottom bit into carry flag + bcs discrete_char @ if set, we jump to discrete char + +offset_length: + ldrb r0,[r3],#+1 @ load a byte, increment pointer + ldrb r4,[r3],#+1 @ load a byte, increment pointer + @ we can't load halfword as no unaligned loads on arm + + orr r4,r0,r4,LSL #8 @ merge back into 16 bits + @ this has match_length and match_position + + mov r7,r4 @ copy r4 to r7 + @ no need to mask r7, as we do it + @ by default in output_loop + + mov r0,#(THRESHOLD+1) + add r6,r0,r4,LSR #(P_BITS) + @ r6 = (r4 >> P_BITS) + THRESHOLD + 1 + @ (=match_length) + +output_loop: + ldr r0,pos_mask @ urgh, can't handle simple constants + and r7,r7,r0 @ mask it + ldrb r4,[r9,r7] @ load byte from text_buf[] + add r7,r7,#1 @ advance pointer in text_buf + +store_byte: + strb r4,[r1],#+1 @ store a byte, increment pointer + strb r4,[r9,r2] @ store a byte to text_buf[r] + add r2,r2,#1 @ r++ + mov r0,#(N) + sub r0,r0,#1 @ grrr no way to get this easier + and r2,r2,r0 @ mask r + + subs r6,r6,#1 @ decement count + bne output_loop @ repeat until k>j + + tst r5,#0xff00 @ are the top bits 0? + bne test_flags @ if not, re-load flags + + b decompression_loop + +discrete_char: + ldrb r4,[r3],#+1 @ load a byte, increment pointer + mov r6,#1 @ we set r6 to one so byte + @ will be output once + + b store_byte @ and store it + + +# end of LZSS code + +done_logo: + ldr r1,out_addr @ buffer we are printing to + + bl write_stdout @ print the logo + + #========================== + # PRINT VERSION + #========================== +first_line: + + mov r0,#0 + add r1,r11,#(uname_info-data_begin) + @ os-name from uname "Linux" + + ldr r10,out_addr @ point r10 to out_buffer + + bl strcat @ call strcat + + + add r1,r11,#(ver_string-data_begin) @ source is " Version " + bl strcat @ call strcat + + add r1,r11,#((uname_info-data_begin)+U_RELEASE) + @ version from uname, ie "2.6.20" + bl strcat @ call strcat + + add r1,r11,#(compiled_string-data_begin) + @ source is ", Compiled " + bl strcat @ call strcat + + add r1,r11,#((uname_info-data_begin)+U_VERSION) + @ compiled date + bl strcat @ call strcat + + mov r3,#0xa + strb r3,[r10],#+1 @ store a linefeed, increment pointer + strb r0,[r10],#+1 @ NUL terminate, increment pointer + + bl center_and_print @ center and print + + @=============================== + @ Middle-Line + @=============================== +middle_line: + @========= + @ Load /proc/cpuinfo into buffer + @========= + + ldr r10,out_addr @ point r10 to out_buffer + + @============= + @ Number of CPUs + @============= +number_of_cpus: + + add r1,r11,#(one-data_begin) + # cheat. Who has an SMP arm? + bl strcat + + @========= + @ MHz + @========= +print_mhz: + + @ the arm system I have does not report MHz + + @========= + @ Chip Name + @========= +chip_name: + mov r0,#'s' + mov r1,#'o' + mov r2,#'r' + mov r3,#' ' + bl find_string + @ find 'sor\t: ' and grab up to ' ' + + add r1,r11,#(processor-data_begin) + @ print " Processor, " + bl strcat + + @======== + @ RAM + @======== + + + ldr r3,[r11,#((sysinfo_buff-data_begin)+S_TOTALRAM)] + @ size in bytes of RAM + movs r3,r3,lsr #20 @ divide by 1024*1024 to get M + adc r3,r3,#0 @ round + + mov r0,#1 + bl num_to_ascii + + add r1,r11,#(ram_comma-data_begin) + @ print 'M RAM, ' + bl strcat @ call strcat + + + @======== + @ Bogomips + @======== + + mov r0,#'I' + mov r1,#'P' + mov r2,#'S' + mov r3,#'\n' + bl find_string + + add r1,r11,#(bogo_total-data_begin) + bl strcat @ print bogomips total + + bl center_and_print @ center and print + + #================================= + # Print Host Name + #================================= +last_line: + ldr r10,out_addr @ point r10 to out_buffer + + add r1,r11,#((uname_info-data_begin)+U_NODENAME) + @ host name from uname() + bl strcat @ call strcat + + bl center_and_print @ center and print + + add r1,r11,#(default_colors-data_begin) + @ restore colors, print a few linefeeds + bl write_stdout + + + @================================ + @ Exit + @================================ +exit: + mov r0,#0 @ result is zero + mov r7,#SYSCALL_EXIT + swi 0x0 @ and exit + + + @================================= + @ FIND_STRING + @================================= + @ r0,r1,r2 = string to find + @ r3 = char to end at + @ r5 trashed +find_string: + ldr r7,disk_addr @ look in cpuinfo buffer +find_loop: + ldrb r5,[r7],#+1 @ load a byte, increment pointer + cmp r5,r0 @ compare against first byte + ldrb r5,[r7] @ load next byte + cmpeq r5,r1 @ if first byte matched, comp this one + ldrb r5,[r7,#+1] @ load next byte + cmpeq r5,r2 @ if first two matched, comp this one + beq find_colon @ if all 3 matched, we are found + + cmp r5,#0 @ are we at EOF? + beq done @ if so, done + + b find_loop + +find_colon: + ldrb r5,[r7],#+1 @ load a byte, increment pointer + cmp r5,#':' + bne find_colon @ repeat till we find colon + + add r7,r7,#1 @ skip the space + +store_loop: + ldrb r5,[r7],#+1 @ load a byte, increment pointer + strb r5,[r10],#+1 @ store a byte, increment pointer + cmp r5,r3 + bne store_loop + +almost_done: + mov r0,#0 + strb r0,[r10],#-1 @ replace last value with NUL + +done: + bx r14 @ return + + #================================ + # strcat + #================================ + # value to cat in r1 + # output buffer in r10 + # r3 trashed +strcat: + ldrb r3,[r1],#+1 @ load a byte, increment pointer + strb r3,[r10],#+1 @ store a byte, increment pointer + cmp r3,#0 @ is it zero? + bne strcat @ if not loop + sub r10,r10,#1 @ point to one less than null + bx r14 @ return + + + #============================== + # center_and_print + #============================== + # string to center in at output_buffer + +center_and_print: + + stmfd SP!,{LR} @ store return address on stack + + add r1,r11,#(escape-data_begin) + @ we want to output ^[[ + bl write_stdout + +str_loop2: + ldr r2,out_addr @ point r2 to out_buffer + sub r2,r10,r2 @ get length by subtracting + + rsb r2,r2,#81 @ reverse subtract! r2=81-r2 + @ we use 81 to not count ending \n + + bne done_center @ if result negative, don't center + + lsrs r3,r2,#1 @ divide by 2 + adc r3,r3,#0 @ round? + + mov r0,#0 @ print to stdout + bl num_to_ascii @ print number of spaces + + add r1,r11,#(C-data_begin) + @ we want to output C + bl write_stdout + +done_center: + ldr r1,out_addr @ point r1 to out_buffer + ldmfd SP!,{LR} @ restore return address from stack + + #================================ + # WRITE_STDOUT + #================================ + # r1 has string + # r0,r2,r3 trashed +write_stdout: + mov r2,#0 @ clear count + +str_loop1: + add r2,r2,#1 + ldrb r3,[r1,r2] + cmp r3,#0 + bne str_loop1 @ repeat till zero + +write_stdout_we_know_size: + mov r0,#STDOUT @ print to stdout + mov r7,#SYSCALL_WRITE + swi 0x0 @ run the syscall + bx r14 @ return + + + @############################# + @ num_to_ascii + @############################# + @ r3 = value to print + @ r0 = 0=stdout, 1=strcat + +num_to_ascii: + stmfd SP!,{r10,LR} @ store return address on stack + add r10,r12,#((ascii_buffer-bss_begin)) + add r10,r10,#10 + @ point to end of our buffer + + mov r4,#10 @ we'll be dividing by 10 +div_by_10: + bl divide @ Q=r7,$0, R=r8,$1 + add r8,r8,#0x30 @ convert to ascii + strb r8,[r10],#-1 @ store a byte, decrement pointer + adds r3,r7,#0 @ move Q in for next divide, update flags + bne div_by_10 @ if Q not zero, loop + +write_out: + add r1,r10,#1 @ adjust pointer + ldmfd SP!,{r10,LR} @ restore return address from stack + + cmp r0,#0 + bne strcat @ if 1, strcat + + b write_stdout @ else, fallthrough to stdout + + + @=================================================== + @ Divide - because ARM has no hardware int divide + @ yes this is an awful algorithm, but simple + @ and uses few registers + @================================================== + @ r3=numerator r4=denominator + @ r7=quotient r8=remainder + @ r5=trashed +divide: + + mov r7,#0 @ zero out quotient +divide_loop: + mul r5,r7,r4 @ multiply Q by denominator + add r7,r7,#1 @ increment quotient + cmp r5,r3 @ is it greater than numerator? + ble divide_loop @ if not, loop + sub r7,r7,#2 @ otherwise went too far, decrement + @ and done + + mul r5,r7,r4 @ calculate remainder + sub r8,r3,r5 @ R=N-(Q*D) + bx r14 @ return + + +bss_addr: .word bss_begin +data_addr: .word data_begin +out_addr: .word out_buffer +disk_addr: .word disk_buffer +logo_end_addr: .word logo_end +pos_mask: .word ((POSITION_MASK<<8)+0xff) +text_addr: .word text_buf + +#=========================================================================== +# section .data +#=========================================================================== +.data +data_begin: +ver_string: .ascii " Version \0" +compiled_string: .ascii ", Compiled \0" +processor: .ascii " Processor, \0" +ram_comma: .ascii "M RAM, \0" +bogo_total: .ascii " Bogomips Total\n\0" + +default_colors: .ascii "\033[0m\n\n\0" +escape: .ascii "\033[\0" +C: .ascii "C\0" + +one: .ascii "One \0" + +uname_info: +.ascii "Linux\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "lindt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "2.6.32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "#1 Wed May 13 15:51:54 UTC 2009\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + + +disk_buffer: +.ascii "Processor : Feroceon 88FR131 rev 1 (v5l)\n" +.ascii "BogoMIPS : 1192.75\n" +.ascii "Features : swp half thumb fastmult edsp \n" +.ascii "CPU implementer : 0x56\n" +.ascii "CPU architecture: 5TE\n" +.ascii "CPU variant : 0x2\n" +.ascii "CPU part : 0x131\n" +.ascii "CPU revision : 1\n" +.ascii "\n" +.ascii "Hardware : Marvell SheevaPlug Reference Board\n" +.ascii "Revision : 0000\n" +.ascii "Serial : 0000000000000000\n\0" + + +sysinfo_buff: +.long 0,0,0,0,512*1024*1024,0,0,0 + +.include "../logo.lzss_new" + + +#============================================================================ +# section .bss +#============================================================================ +.bss +bss_begin: +.lcomm ascii_buffer,10 +.lcomm text_buf, (N+F-1) +.lcomm out_buffer,16384 Added: trunk/exp-bbv/tests/arm-linux/ll.post.exp =================================================================== --- trunk/exp-bbv/tests/arm-linux/ll.post.exp (rev 0) +++ trunk/exp-bbv/tests/arm-linux/ll.post.exp 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,56 @@ +T:1:12 :8:5 :6:24 :2:28 :9:18 :10:744 :4:104 :5:26 :7:1 :3:39 +T:8:10 :6:26 :2:30 :9:108 :10:695 :4:72 :5:30 :7:2 :3:27 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:8:5 :6:12 :2:14 :9:36 :10:863 :4:40 :5:14 :7:1 :3:15 +T:8:5 :6:10 :2:12 :9:90 :10:859 :4:8 :5:12 :7:1 :3:3 +T:8:5 :6:6 :2:8 :9:72 :10:900 :5:8 :7:1 +T:6:12 :2:12 :9:90 :10:863 :4:8 :5:12 :3:3 +T:8:5 :6:4 :2:6 :9:54 :10:924 :5:6 :7:1 +T:6:4 :2:4 :9:36 :10:952 :5:4 +T:6:8 :2:8 :9:72 :10:904 :5:8 +T:8:5 :6:10 :2:12 :9:108 :10:852 :5:12 :7:1 +T:8:5 :6:6 :2:8 :9:72 :10:900 :5:8 :7:1 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:8:5 :6:4 :2:6 :9:54 :10:924 :5:6 :7:1 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:6:4 :2:4 :9:36 :10:952 :5:4 +T:8:5 :6:4 :2:6 :9:54 :10:924 :5:6 :7:1 +T:6:4 :2:4 :9:36 :10:952 :5:4 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:8:5 :6:2 :2:4 :9:36 :10:948 :5:4 :7:1 +T:6:2 :2:2 :9:18 :10:976 :5:2 +T:6:10 :2:10 :9:55 :10:904 :4:8 :5:10 :3:3 +T:8:5 :6:4 :2:6 :9:71 :10:907 :5:6 :7:1 +T:6:4 :2:4 :9:36 :10:952 :5:4 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:8:5 :6:14 :2:16 :9:126 :10:811 :4:8 :5:16 :7:1 :3:3 +T:8:5 :6:2 :2:4 :9:36 :10:948 :5:4 :7:1 +T:6:4 :2:4 :9:36 :10:952 :5:4 +T:6:6 :2:6 :9:54 :10:928 :5:6 +T:8:5 :6:8 :2:10 :9:90 :10:876 :5:10 :7:1 +T:6:8 :2:8 :9:72 :10:904 :5:8 +T:8:5 :6:4 :2:6 :9:54 :10:924 :5:6 :7:1 +T:8:5 :6:10 :2:12 :9:108 :10:852 :5:12 :7:1 +T:6:8 :2:6 :9:36 :10:434 :4:8 :5:8 :3:3 :11:2 :12:5 :13:490 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:16:4 :19:2 :20:2 :21:2 :22:2 :23:4 :17:268 :18:10 :24:3 :25:4 :26:4 :34:2 :35:7 :12:15 :13:628 :14:12 :15:4 :27:5 :31:4 :32:4 :33:1 :28:5 :29:4 :30:4 +T:36:3 :37:5 :46:2 :47:5 :49:2 :50:5 :38:16 :41:280 :39:80 :40:40 :42:18 :43:5 :44:32 :45:3 :17:120 :18:8 :13:86 :14:3 :15:1 :27:5 :48:2 :31:12 :32:4 :28:15 :29:236 :30:12 + + +# Thread 1 +# Total intervals: 47 (Interval Size 1000) +# Total instructions: 47799 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 + Added: trunk/exp-bbv/tests/arm-linux/ll.stderr.exp =================================================================== --- trunk/exp-bbv/tests/arm-linux/ll.stderr.exp (rev 0) +++ trunk/exp-bbv/tests/arm-linux/ll.stderr.exp 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,6 @@ +# Thread 1 +# Total intervals: 47 (Interval Size 1000) +# Total instructions: 47799 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 Added: trunk/exp-bbv/tests/arm-linux/ll.stdout.exp =================================================================== --- trunk/exp-bbv/tests/arm-linux/ll.stdout.exp (rev 0) +++ trunk/exp-bbv/tests/arm-linux/ll.stdout.exp 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,17 @@ +[0;1;37;47m#################################################################[0;30;47m#####[1;37m#########[1;37;40m +[0;1;37;47m################################################################[0;30;47m#######[1;37m########[1;37;40m +[0;1;37;47m###################[31m#[37m############################################[0;30;47m##[1;37mO[0;30;47m#[1;37mO[0;30;47m##[1;37m########[1;37;40m +[0;1;37;47m##[0;30;47m######[1;37m##########[31m##[0;30;47m#[1;37m###########################################[0;30;47m#[1;33m#####[0;30;47m#[1;37m########[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#############[0;30;47m#[1;37m##########################################[0;30;47m##[1;37m##[33m###[37m##[0;30;47m##[1;37m######[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#########[31m###[37m###[0;30;47m###[1;37m#[0;30;47m####[1;37m###[0;30;47m###[1;37m####[0;30;47m###[1;37m##[0;30;47m#####[1;37m#[0;30;47m######[1;37m#####[0;30;47m#[1;37m##########[0;30;47m##[1;37m#####[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m########[31m#[37m##[31m#[0;30;47m#[1;37m###[0;30;47m###[1;37m####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m####[0;30;47m##[1;37m###[0;30;47m##[1;37m#######[0;30;47m#[1;37m############[0;30;47m##[1;37m####[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#######[31m#[37m###[31m#[0;30;47m#[1;37m###[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m######[0;30;47m###[1;37m#########[0;30;47m#[1;37m############[0;30;47m###[1;37m###[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m##########[31m##[0;30;47m#[1;37m###[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m######[0;30;47m###[1;37m########[33m##[0;30;47m#[1;37m###########[0;30;47m##[1;33m#[37m###[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#######[0;30;47m#[1;37m#[31m##[0;30;47m#[1;37m####[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m#####[0;30;47m##[1;37m#[0;30;47m##[1;37m#####[33m######[0;30;47m#[1;37m#######[30m#[33m######[37m#[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m######[0;30;47m##[1;37m#[31m##[0;30;47m#[1;37m#[0;30;47m#[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m###[1;37m###[0;30;47m###[1;37m####[0;30;47m##[1;37m###[0;30;47m##[1;37m####[33m#######[0;30;47m#[1;37m#####[0;30;47m#[1;33m#######[37m#[1;37;40m +[0;1;37;47m##[0;30;47m############[1;37m##[0;30;47m###[1;37m##[0;30;47m####[1;37m###[0;30;47m####[1;37m###[0;30;47m####[1;37m#[0;30;47m###[1;37m#[0;30;47m#####[1;37m#[0;30;47m######[1;37m###[33m#####[30m#[0;30;47m#####[1m#[33m#####[37m###[1;37;40m + +[9CLinux Version 2.6.32, Compiled #1 Wed May 13 15:51:54 UTC 2009 +[12COne Feroceon Processor, 512M RAM, 1192.75 Bogomips Total +[38Clindt[0m + Added: trunk/exp-bbv/tests/arm-linux/ll.vgtest =================================================================== --- trunk/exp-bbv/tests/arm-linux/ll.vgtest (rev 0) +++ trunk/exp-bbv/tests/arm-linux/ll.vgtest 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,5 @@ +prog: ll +vgopts: --interval-size=1000 --bb-out-file=ll.out.bb +post: cat ll.out.bb +cleanup: rm ll.out.bb + Added: trunk/exp-bbv/tests/arm-linux/million.S =================================================================== --- trunk/exp-bbv/tests/arm-linux/million.S (rev 0) +++ trunk/exp-bbv/tests/arm-linux/million.S 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,27 @@ + + # count for 1 million instructions + # total is 1 + 333332*3 + 2 + + +# Sycscalls +.equ SYSCALL_EXIT, 1 + + .globl _start +_start: + + ldr r2,count @ set count + +big_loop: + add r2,r2,#-1 + cmp r2,#0 + bne big_loop @ repeat till zero + + @================================ + @ Exit + @================================ +exit: + mov r0,#0 @ result is zero + mov r7,#SYSCALL_EXIT + swi 0x0 @ and exit + +count: .word 333332 Added: trunk/exp-bbv/tests/arm-linux/million.post.exp =================================================================== --- trunk/exp-bbv/tests/arm-linux/million.post.exp (rev 0) +++ trunk/exp-bbv/tests/arm-linux/million.post.exp 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,18 @@ +T:1:4 :2:99997 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 + + +# Thread 1 +# Total intervals: 10 (Interval Size 100000) +# Total instructions: 1000000 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 + Added: trunk/exp-bbv/tests/arm-linux/million.stderr.exp =================================================================== --- trunk/exp-bbv/tests/arm-linux/million.stderr.exp (rev 0) +++ trunk/exp-bbv/tests/arm-linux/million.stderr.exp 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,6 @@ +# Thread 1 +# Total intervals: 10 (Interval Size 100000) +# Total instructions: 1000000 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 Added: trunk/exp-bbv/tests/arm-linux/million.vgtest =================================================================== --- trunk/exp-bbv/tests/arm-linux/million.vgtest (rev 0) +++ trunk/exp-bbv/tests/arm-linux/million.vgtest 2010-01-06 15:15:28 UTC (rev 11020) @@ -0,0 +1,5 @@ +prog: million +vgopts: --interval-size=100000 --bb-out-file=million.out.bb +post: cat million.out.bb +cleanup: rm million.out.bb + |
|
From: Bjoern D. <bjo...@go...> - 2010-01-06 14:08:45
|
Hello, I'm trying to compile Valgrind in a separate build directory, so that all generated files etc. are placed outside the source dir. To achieve this, I had to make two adaptions to the build system: 1) default.supp file generation default.supp is generated by cat'ing several.supp files together. These reside in the source directory and the cat command needs to be adapted to read them from there. However, one of those files is created during the build process from glibc-2.X.supp.in and the generated .supp file does not reside inside the source directory, so prefixing everything with the $srcdir is not possible. I therefore split these files into two sets (already existing DEFAULT_SUPP and GENERATED_SUPP) and handle them separately in the Makefile. 2) VEX directories Building VEX requires some directories to be available in the build directory. Attached is my current patch, any comments are appreciated. Cheers, Bjoern |
|
From: <sv...@va...> - 2010-01-06 11:08:27
|
Author: sewardj
Date: 2010-01-06 11:08:18 +0000 (Wed, 06 Jan 2010)
New Revision: 11019
Log:
arm-linux: remove wrappers for __NR_ipc, __NR_mmap, __NR_sigsuspend
and __NR_sigaction, which all did I_die_here and therefore can never
have been used. I think they were here as a result of this file being
derived from the x86-linux version, and that arm-linux uses more
modern equivalents (mmap2, rt_sig*, and the broken-out versions of
ipc).
Modified:
trunk/coregrind/m_syswrap/syswrap-arm-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-arm-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-arm-linux.c 2010-01-06 10:22:25 UTC (rev 11018)
+++ trunk/coregrind/m_syswrap/syswrap-arm-linux.c 2010-01-06 11:08:18 UTC (rev 11019)
@@ -321,18 +321,14 @@
DECL_TEMPLATE(arm_linux, sys_socketpair);
DECL_TEMPLATE(arm_linux, sys_send);
DECL_TEMPLATE(arm_linux, sys_recv);
-DECL_TEMPLATE(arm_linux, sys_mmap);
DECL_TEMPLATE(arm_linux, sys_mmap2);
DECL_TEMPLATE(arm_linux, sys_stat64);
DECL_TEMPLATE(arm_linux, sys_lstat64);
DECL_TEMPLATE(arm_linux, sys_fstatat64);
DECL_TEMPLATE(arm_linux, sys_fstat64);
-DECL_TEMPLATE(arm_linux, sys_ipc);
DECL_TEMPLATE(arm_linux, sys_clone);
DECL_TEMPLATE(arm_linux, sys_sigreturn);
DECL_TEMPLATE(arm_linux, sys_rt_sigreturn);
-DECL_TEMPLATE(arm_linux, sys_sigaction);
-DECL_TEMPLATE(arm_linux, sys_sigsuspend);
DECL_TEMPLATE(arm_linux, sys_set_tls);
DECL_TEMPLATE(arm_linux, sys_cacheflush);
@@ -950,11 +946,6 @@
ML_(generic_POST_sys_recv)( tid, RES, ARG1, ARG2, ARG3 );
}
-PRE(sys_mmap)
-{
- I_die_here;
-}
-
PRE(sys_mmap2)
{
SysRes r;
@@ -1037,17 +1028,6 @@
POST_MEM_WRITE( ARG2, sizeof(struct vki_stat64) );
}
-
-PRE(sys_ipc)
-{
- I_die_here;
-}
-
-POST(sys_ipc)
-{
- I_die_here;
-}
-
PRE(sys_clone)
{
UInt cloneflags;
@@ -1189,19 +1169,6 @@
*flags |= SfPollAfter;
}
-PRE(sys_sigaction)
-{
- I_die_here;
-}
-
-POST(sys_sigaction)
-{ I_die_here;
-}
-
-PRE(sys_sigsuspend)
-{ I_die_here;
-}
-
/* Very much ARM specific */
PRE(sys_set_tls)
@@ -1327,13 +1294,13 @@
GENX_(__NR_getpgrp, sys_getpgrp), // 65
GENX_(__NR_setsid, sys_setsid), // 66
- PLAXY(__NR_sigaction, sys_sigaction), // 67
+// _____(__NR_sigaction, sys_sigaction), // 67
//zz // (__NR_sgetmask, sys_sgetmask), // 68 */* (ANSI C)
//zz // (__NR_ssetmask, sys_ssetmask), // 69 */* (ANSI C)
//zz
LINX_(__NR_setreuid, sys_setreuid16), // 70
LINX_(__NR_setregid, sys_setregid16), // 71
- PLAX_(__NR_sigsuspend, sys_sigsuspend), // 72
+// _____(__NR_sigsuspend, sys_sigsuspend), // 72
LINXY(__NR_sigpending, sys_sigpending), // 73
//zz // (__NR_sethostname, sys_sethostname), // 74 */*
//zz
@@ -1355,7 +1322,7 @@
//zz // (__NR_reboot, sys_reboot), // 88 */Linux
//zz // (__NR_readdir, old_readdir), // 89 -- superseded
//zz
-// PLAX_(__NR_mmap, old_mmap), // 90
+// _____(__NR_mmap, old_mmap), // 90
GENXY(__NR_munmap, sys_munmap), // 91
GENX_(__NR_truncate, sys_truncate), // 92
GENX_(__NR_ftruncate, sys_ftruncate), // 93
@@ -1387,7 +1354,7 @@
//zz
//zz // (__NR_swapoff, sys_swapoff), // 115 */Linux
LINXY(__NR_sysinfo, sys_sysinfo), // 116
- PLAXY(__NR_ipc, sys_ipc), // 117
+// _____(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118
PLAX_(__NR_sigreturn, sys_sigreturn), // 119 ?/Linux
|
|
From: <sv...@va...> - 2010-01-06 10:22:36
|
Author: sewardj
Date: 2010-01-06 10:22:25 +0000 (Wed, 06 Jan 2010)
New Revision: 11018
Log:
Pass sys_cacheflush along to VG_(discard_translations), so we have
transparent zero-cost self-modifying code support on ARM.
Modified:
trunk/coregrind/m_syswrap/syswrap-arm-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-arm-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-arm-linux.c 2010-01-04 21:49:25 UTC (rev 11017)
+++ trunk/coregrind/m_syswrap/syswrap-arm-linux.c 2010-01-06 10:22:25 UTC (rev 11018)
@@ -51,6 +51,7 @@
#include "pub_core_syswrap.h"
#include "pub_core_tooliface.h"
#include "pub_core_stacks.h" // VG_(register_stack)
+#include "pub_core_transtab.h" // VG_(discard_translations)
#include "priv_types_n_macros.h"
#include "priv_syswrap-generic.h" /* for decls of generic wrappers */
@@ -1214,6 +1215,10 @@
{
PRINT("cacheflush (%lx, %#lx, %#lx)",ARG1,ARG2,ARG3);
PRE_REG_READ3(long, "cacheflush", void*, addrlow,void*, addrhigh,int, flags);
+ VG_(discard_translations)( (Addr64)ARG1,
+ ((ULong)ARG2) - ((ULong)ARG1) + 1ULL/*paranoia*/,
+ "PRE(sys_cacheflush)" );
+ SET_STATUS_Success(0);
}
|